FIDDle!如何运行存储在html中的脚本?我不想把它从功能中拿出来......
HTML:
<script type="hbrData">
function(){
var x = 22;
alert('hi');
}
</script>
JS:
var script = $('script[type="hbrData"]').text();
$('body').append(script);
script(); // Uncaught TypeError: string is not a function
答案 0 :(得分:1)
如果您有充分理由这样做,请使用eval
:
var script = $('script[type="hbrData"]').text();
eval('(' + script + ')')();
答案 1 :(得分:1)
在html中为函数命名,你可以从javascript调用它:
<强> HTML 强>
<script>
function HelloWorld() {
var x = 22;
alert('hi');
}
</script>
<强>的Javascript 强>
HelloWorld();
<强> Demo 强>
答案 2 :(得分:0)
$.globalEval("("+script+")()");
答案 3 :(得分:0)
你可以这样做
HTML:
<script type="hbrData">
var x = 22;
alert('hi');
</script>
JS:
var script = $('script[type="hbrData"]').text();
var fn = new Function (script) ;
fn() ;
这样可以避免使用eval
。
请注意,我已将HTML从匿名函数定义更改为仅两行脚本。不知道你是否愿意这样做。