在完全重写div之后,我正在使用eval()执行所有qf=name^20 address^10 city
个标记。
<script>
适用于内联脚本,但对以下脚本没有影响:
$("#content").find("script").each(function(){
eval($(this).text());
});
为什么?我可以“强制”浏览器加载并执行外部脚本吗?
答案 0 :(得分:0)
除了使用eval
的实际问题之外,您还试图eval
这些脚本标记中的.text
,这基本上没什么。
当加载<script>
标记时,它会将外部文件中的链接作为资源链接到您的页面并执行脚本。它不会直接向dom渲染任何东西。
因此,您$(this).text()
将返回''。
如果要重新加载外部脚本,则需要强制刷新页面,或者可能更改这些脚本的方式:ex。 jQuery.getScript alternative in native JavaScript
答案 1 :(得分:-2)
$("body").css("background", "silver");
$("button").click(function () {
$("script[src^='data:']").each(function () {
var script = document.createElement('script');
script.src = this.src;
document.body.appendChild(script);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="data:text/javascript,document.body.style.background='red'"></script>
<button>Go</button>