2011-06-30 36 views
5

हटाने से jquery को रोकने के लिए कैसे करें I jquery के डिफ़ॉल्ट व्यवहार को अपने जेएस को अलग करने से कैसे रोकूं?<script> टैग

function callBackFunctionLoadPage(data) 
{ 
    var data = $(data).find('#content'); 
    alert($(data).html()); 
    $("#content").html(data); 
    $("#page").fadeTo(100,1); 
} 
function loadPage(url,parm) 
{ 
    //alert(url); 
    loadNextBackInPage_URL = url; 
    $("#page").fadeTo(100,.2); 
    $.post(url,parm,callBackFunctionLoadPage); 
} 

मेरी कोड में मैं टैग चाहते हैं, लेकिन jQuery उन्हें स्ट्रिप्स बाहर:

मूल कोड:

<div id="content"> 
      <div class="post"> 
        <h1 class="title"><a href="#">Kannada on campus</a> - photos</h1> 
        <p class="meta">&nbsp;</p> 
        <div class="entry"> 
         <p>&nbsp;</p> 

       <div id="gallery"> 
             <img src="images/gallery/daya_240909_byreg1.jpg"> 
               <img src="images/gallery/Group 2.jpg"> 
               <img src="images/gallery/IMG00216-20101025-2001.jpg"> 
               <img src="images/gallery/kamal-hassan-in-kannada-02.jpg"> 
               <img src="images/gallery/kannada2.jpg"> 
               <img src="images/gallery/Nayantara-Kannada.jpg"> 
               <img src="images/gallery/P1019502.jpg"> 
               <img src="images/gallery/P1019603.jpg"> 
               <img src="images/gallery/P1019643.jpg"> 
               <img src="images/gallery/P1019644.jpg"> 
               <img src="images/gallery/Zee-Kannada-Presents-Rajotsava.jpg"> 
            </div> 

<script src="galleria/galleria-1.2.3.min.js"></script> 
<script> 
    Galleria.loadTheme('galleria/themes/classic/galleria.classic.min.js'); 
    $("#gallery").galleria({ 
     width: 500, 
     height: 500 
    }); 
</script> 
      </div> 
        <p class="links">&nbsp;</p> 
</div> 
    </div> 
    <!-- end content --> 

लेकिन jQuery से:

<div id="content"> 
      <div class="post"> 
        <h1 class="title"><a href="#">Kannada on campus</a> - photos</h1> 
        <p class="meta">&nbsp;</p> 
        <div class="entry"> 
         <p>&nbsp;</p> 

       <div id="gallery"> 
             <img src="images/gallery/daya_240909_byreg1.jpg"> 
               <img src="images/gallery/Group 2.jpg"> 
               <img src="images/gallery/IMG00216-20101025-2001.jpg"> 
               <img src="images/gallery/kamal-hassan-in-kannada-02.jpg"> 
               <img src="images/gallery/kannada2.jpg"> 
               <img src="images/gallery/Nayantara-Kannada.jpg"> 
               <img src="images/gallery/P1019502.jpg"> 
               <img src="images/gallery/P1019603.jpg"> 
               <img src="images/gallery/P1019643.jpg"> 
               <img src="images/gallery/P1019644.jpg"> 
               <img src="images/gallery/Zee-Kannada-Presents-Rajotsava.jpg"> 
            </div> 

     </div> 
        <p class="links">&nbsp;</p> 
</div> 
    </div> 
    <!-- end content --> 

संपादित

यहाँ मेरी वास्तविक html पृष्ठ है कि लोड रही है

<!DOCTYPE> 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

<title>Kannada on campus</title> 

<meta name="keywords" content="" /> 

<link rel="icon" href="images/icon.jpg"/> 

<meta name="description" content="" /> 

<link href="style.css" rel="stylesheet" type="text/css" media="screen" /> 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 

<script type="text/javascript" src="js/custom.js"></script> 

</head> 

<div id="box"><a href="http://twitter.com/bedupako" target="_blank"><img src="images/twitter.png" width="50" height="50" alt="Follow us on twitter" longdesc="http://twitter.com/bedupako" border="0" /></a> <a href="http://www.youtube.com/user/Bedupako" target="_blank"><img src="images/youtube.png" width="50" height="50" alt="Follow us on twitter" longdesc="http://www.youtube.com/user/Bedupako" border="0" /></a> <a href="http://www.facebook.com/pages/BEDUPAKO/301073813491?ref=ts" target="_blank"><img src="images/Facebook Product Profile.png" width="50" height="50" alt="Follow us on twitter" longdesc="http://www.facebook.com/pages/BEDUPAKO/301073813491?ref=ts" border="0" /></a> <a href="http://www.orkut.com/Community?cmm=98290522" target="_blank"><img src="images/orkut.png" width="50" height="50" alt="Follow us on twitter" longdesc="http://www.orkut.com/Community?cmm=98290522" border="0" /></a> 

    <!--end box--> 

</div> 

<body> 

<!-- start header --> 

<div id="header"> 

    <div id="search"></div> 

</div> 

<div id="logo"> 

    <h1><a href="#">Kannada on campus</a></h1><br /><br /> 

    <h2>Kannada kali, uddaraaagi. Baai muchhikondu bhashe maatadi.</h2> 

    </div> 

<!-- end header --> 

<hr /> 

<!-- start page --> 

<div id="page"> 

    <div id="menu"> 

     <ul> 

      <li><a href="?p=ho" onclick="javascript:loadPage('?p=ho',null);return false;">Home</a></li> 

      <li><a href="?p=e" onclick="javascript:loadPage('?p=e',null);return false;">Events</a></li> 

      <li><a href="?p=ph" onclick="javascript:loadPage('?p=ph',null);return false;">Photos</a></li> 

      <li><a href="?p=ab" onclick="javascript:loadPage('?p=ab',null);return false;">About</a></li> 

      <li><a href="?p=cu" onclick="javascript:loadPage('?p=cu',null);return false;">Contact Us</a></li> 

      <li><a href="other_files/change_lang.php?l=k&r=%2Fkoc%2F%3Fp%3Dph">&#3221;&#3240;&#3277;&#3240;&#3233;</a></li> 

     </ul> 

    </div> <!-- start content --> 



    <div id="content"> 

     <div class="post"> 

      <h1 class="title"><a href="#">Kannada on campus</a> - photos</h1> 

      <p class="meta">&nbsp;</p> 

      <div class="entry"> 

       <p>&nbsp;</p> 



       <div id="gallery"> 

             <img src="images/gallery/daya_240909_byreg1.jpg"> 

               <img src="images/gallery/Group 2.jpg"> 

               <img src="images/gallery/IMG00216-20101025-2001.jpg"> 

               <img src="images/gallery/kamal-hassan-in-kannada-02.jpg"> 

               <img src="images/gallery/kannada2.jpg"> 

               <img src="images/gallery/Nayantara-Kannada.jpg"> 

               <img src="images/gallery/P1019502.jpg"> 

               <img src="images/gallery/P1019603.jpg"> 

               <img src="images/gallery/P1019643.jpg"> 

               <img src="images/gallery/P1019644.jpg"> 

               <img src="images/gallery/Zee-Kannada-Presents-Rajotsava.jpg"> 

            </div> 



<script src="galleria/galleria-1.2.3.min.js"></script> 

<script> 

    Galleria.loadTheme('galleria/themes/classic/galleria.classic.min.js'); 

    $("#gallery").galleria({ 

     width: 500, 

     height: 500 

    }); 

</script> 

      </div> 

      <p class="links">&nbsp;</p> 

</div> 

    </div> 

    <!-- end content --> 



    <!-- start sidebar two --> 

    <div id="sidebar2" class="sidebar"> 

     <ul> 

     <li> 

     <h2><a href="?p=ev">Register you event</a></h2> 

     Tell us if you are conducting any kannada event and we will update it to our audience! 

     </li> 

      <li> 

       <h2>Subscription</h2> 



         <form id="form1" method="post" action="other_files/add_mailing_list.php"> 

         <label> 

          Subscribe to our mailing list: 

          <input type="text" name="sub-email" id="sub-email" /> 

          <input type="submit" name="submit" id="submit" value=" Add " /> 

          <input type="hidden" name="redirect" id="redirect" value="%2Fkoc%2F%3Fp%3Dph" /> 

         </label> 

         </form> 

       <h2>Current Events</h2> 

       <ul> 

           </ul> 

       <h2>archives</h2> 

       <ul> 

            <li><a href="?p=de&id=1">test</a></li> 

           </ul> 

      </li> 

     </ul> 

</div> 

    <!-- end sidebar two --> 

    <div style="clear: both;">&nbsp;</div> 

</div> 

<!-- end page --> 

<hr /> 

<!-- start footer --> 

<div id="footer"> 

    <p>&copy;2011 All Rights Reserved. &nbsp;&bull;&nbsp; Designed by <a href="http://ajitah.com/" target="_blank">Ajitah</a> | <a href="humans.txt">humans.txt</a></p> 

</div> 

<!-- end footer --></body> 

</html> 

<script type="text/javascript"> 



    var _gaq = _gaq || []; 

    _gaq.push(['_setAccount', 'UA-23549810-1']); 

    _gaq.push(['_trackPageview']); 



    (function() { 

    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 

    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 

    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 

    })(); 



</script> 
+0

आपके जेएस कोड में कौन सा चर एससीआरआईपीटी टैग से छीन लिया गया है? क्या। एचटीएमएल (डेटा) – wosis

+0

के माध्यम से डेटा डालने पर "स्ट्रिपिंग" होता है हां ऐसा होता है कि समय स्वयं – footy

उत्तर

5

मैं तुम्हें कुछ अलग करना का सुझाव है। सबसे पहले, AJAX कॉल अच्छे होते हैं क्योंकि वे हल्के वजन वाले होते हैं, इसलिए पूरे पृष्ठ को लोड करने के बजाय, आप केवल अपडेट किए गए डेटा को पकड़ सकते हैं और जहां आवश्यक हो उसे इंजेक्ट कर सकते हैं। यदि आपको स्क्रिप्ट्स सहित मार्कअप का विशाल सेट मिल रहा है, तो आप अनिवार्य रूप से सामान्य http पृष्ठ अनुरोध करने के लिए AJAX का उपयोग कर रहे हैं। यह सुपरमार्केट (10 आइटम या उससे कम) में तेज़ रेखा को देखने जैसा है और यह उस आइसल की तुलना में तेज़ी से आगे बढ़ रहा है, जिसमें आप वर्तमान में खड़े हैं, इसलिए आप वहां जाते हैं। लेकिन यदि आप हर अनुरोध के लिए ऐसा करते हैं, तो आप फास्ट लेन को सामान्य लेन में बदल देते हैं।

सर्वर से निष्पादित करने के लिए सर्वर से जावास्क्रिप्ट कोड प्राप्त करना आम तौर पर एक संकेत है कि आप समस्या के बारे में सही ढंग से सोच नहीं रहे हैं, क्योंकि आपके मिश्रण डोमेन बहुत ही खतरनाक हैं।

सबसे पहले, क्यों न केवल एक ऐसा फ़ंक्शन है जो हर बार जब आप अगले पृष्ठ/गैलरी में अजेक्स करते हैं तो निष्पादित करता है? आपको सर्वर से कोड प्राप्त करने की आवश्यकता क्यों है? मेरे पहले बिंदु के अनुसार, क्यों न केवल नए फ़ाइल नामों की एक सरणी प्राप्त करें और उनसे नई गैलरी बनाएं?

अगर किसी कारण से आप महसूस करते हैं कि आप इस तरह से जारी रखना चाहते हैं (मुझे इस बिंदु पर इंगित करना चाहिए कि इस तरह से कोड निष्पादित करना सिर्फ खराब अभ्यास नहीं है बल्कि कुछ परिस्थितियों में असुरक्षित है), आप कोड निकाल सकते हैं और यह eval:

मान लिया जाये कि वहाँ कोड का केवल एक ब्लॉक है, और यह <script></script> में लिपटे है (जिसके खाते में खाली स्थान के और अजीब वर्ण के सभी प्रकार के नहीं ले रही है):

function callBackFunctionLoadPage(data) 
{ 
    ... 
    eval(data.match(/<script>(.*)<\/script>/im)[1]); 
} 

अद्यतन

jQuery बाहर स्ट्रिप्स जावास्क्रिप्ट लेकिन यह अभी भी यह कार्यान्वित: (के लिए

$('#content').html('<div><script>alert("hello, world!");</script></div>'); 

तो वहाँ लगभग कोई कारण नहीं स्क्रिप्ट खुद को टैग कर देता है अपनी सामग्री को पहले से ही क्रियान्वित किया जाता है, तो चाहते हैं ...

अद्यतन 2 है गैर विश्वासियों)

var scriptDiv = $('<div><span></span><script>alert("boom!");</script></div>'); 
alert("not yet"); // the above is created but not executed until added to the DOM 
$('body').append(scriptDiv); // there you go, proof that it is executed 
alert(scriptDiv.html()); // to prove that the script was stripped 
+0

आप सही हैं, लेकिन मैं यहां क्या कर रहा हूं सामग्री नामक पृष्ठ का एक हिस्सा लोड कर रहा है। मैं गैलरी प्रदर्शित करने के लिए इसका उपयोग नहीं कर रहा हूं। मैं गैलरी को पहली जगह में प्राप्त करने के लिए बस इस कोड का उपयोग कर रहा हूं। यानी मैं उस पृष्ठ का एक हिस्सा हूं जिसे मैं लोड कर रहा हूं ... गैलरी नहीं – footy

+0

@footy, '# content' लगता है जैसे इसमें पृष्ठ की सामग्री शामिल है, जो इसे सभी उद्देश्यों और उद्देश्यों, पूरे पृष्ठ के लिए बनाती है। – davin

+0

@footy, मेरा अपडेट देखें। आपको खुद टैग की आवश्यकता क्यों है? – davin

4

आप जे एस के मूल innerHTML उपयोग करने की कोशिश की है?

$("#content").get(0).innerHTML = data; 

इस काम करता है, के रूप में डेविन ने कहा, यदि आप अभी भी स्क्रिप्ट का मूल्यांकन करने के लिए है:

eval(data.match(/<script>(.*)<\/script>/im)[1]); 

लोड हो रहा है और मूल्यांकन स्क्रिप्ट रूप AJAX के सामान्य रूप में काम करना चाहिए।