我有一个形式的变量:
var x = '<script type="text/javascript" language="javascript"> ..lots of stuff...</script>
<script type="text/javascript" language="javascript"> ..even more of stuff...</script>'
我希望将jquery插入到我的HTML代码中并执行它。
我尝试使用append
,html
和eval
但没有任何运气。
有什么想法吗?
示例脚本:
<script type="text/javascript" language="javascript">
var clk = 'http://......';
</script>
<script type="text/javascript" language="javascript" src="http://...."></script>
<noscript>
<a href="http://...." target="_blank"><img src="http://..." width="120" height="600" border="0" alt=""></a>
</noscript>
这将最终显示一个img,它将异步加载。
答案 0 :(得分:0)
您可以使用Jquery getScript
:
//Moment example
if (typeof moment == "undefined") {
var url = "~/assets/js/moment.js";
$.getScript(url);
}
或Jquery Function
:
$(function(){
var test = "this.Foo = function() {alert('hi');}";
var F=new Function (test);
(new F()).Foo(); //Shows "Hi" alert
});
$(function(){
var test = "this.Foo = function() {alert('hi');}";
var F=new Function (test);
(new F()).Foo(); //Shows "Hi" alert
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
答案 1 :(得分:0)
通常将</script>
标记嵌套在其他<script></script>
标记中会破坏事物。你需要像下面的Javascript一样拆分它们,以免引起浏览器问题。
这是一个工作小提琴: this
的Javascript
var jsCode = '<scr' + 'ipt>var executeTest = function(){ alert("This is a test."); }</scr' + 'ipt>';
$('head').append(jsCode);
HTML
<script>executeTest();</script>
答案 2 :(得分:0)
此解决方案可能适用于您的特定情况:
var rx = new RegExp("<script .*?>(.*?)<\/script>", 'g');
var x = '<script type="text/javascript" language="javascript">alert("..lots of stuff...");</script><script type="text/javascript" language="javascript">alert("..even more of stuff...");</script>';
var res = rx.exec(x);
while (res) {
var s = document.createElement("script");
s.appendChild(document.createTextNode(res[1]));
document.body.appendChild(s);
res = rx.exec(x);
}
JSBin:http://jsbin.com/menocumiya/edit?html,js,console,output