2011-05-04 59 views
0

JavaScript函數如何通過串負載通過串

<div id="test_div">display here</div> // < --display here 


<script type="text/javascript"> 

// string 
var _script=("<script type=\"text/javascript\"> 

    var disqus_shortname = 'example'; 
    (function() { 
     var s = document.createElement('script'); s.async = true; 
     s.type = 'text/javascript'; 
     s.src = 'http://' + disqus_shortname + '.disqus.com/count.js'; 
     (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); 
    }()); 
</script>"); 


// write/output the string 
document.getElementById('test_div').innerHTML= _script; 
</script> 
+0

不認爲它會工作,爲什麼你想這樣做? – Varun 2011-05-04 12:45:45

+1

http://www.w3schools.com/jsref/jsref_eval.asp – Mantar 2011-05-04 12:45:45

+0

你想做什麼?你想讓代碼運行嗎?或者你想讓它顯示在該div中? – 2011-05-04 13:02:50

回答

1

JavaScript不允許在字符串中出現新行,您需要使用\轉義每條新行。

var _script=("<script type='text/javascript'>\ 
    var disqus_shortname = 'example';\ 
    (function() {\ 
     var s = document.createElement('script'); s.async = true;\ 
     s.type = 'text/javascript';\ 
     s.src = 'http://' + disqus_shortname + '.disqus.com/count.js';\ 
     (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);\ 
    })();\ 
</script>"); 
0

使用jQuery

$('#test_div').click(yourFunctionName) 

您需要命名功能腳本

<script type="text/javascript"> 

// string 

var _script=("<script type=\"text/javascript\"> 

var disqus_shortname = 'example'; 
(function yourFunctionName() { 
    var s = document.createElement('script'); s.async = true; 
    s.type = 'text/javascript'; 
    s.src = 'http://' + disqus_shortname + '.disqus.com/count.js'; 
    (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); 
}()); 


</script>"); 

我加載javascript函數假設你的意思是,如果你點擊testdiv它應該做的功能?

或者 - 您的意思是您想要將腳本動態加載到您的網頁?好吧!

再次使用jQuery。

$(body).append('<script type="text/javascript">' + YOUR_JAVA_STRING + '</script>');