2010-01-15 36 views
4

我正在使用Prototype插入函数来添加一些包含<script>...</script>的html。在这个脚本中,我正在定义一个新功能。当我读here原型运行<script>标签内的脚本,然后将其删除,但所有功能都应保持可访问。但从那一刻起,我无法运行我的新功能。如何在Prototype中插入<script>?

$('some_id').insert({ bottom: '<script> ... </script>' }); 

如何解决?最好的是它不会删除<script>标签。

编辑:

现在我做到了,就像这样:

var add_here = document.getElementById('prepayment_group_items'); 
var src = document.createElement('div'); 
src.innerHTML = 'a lot of html with script tags'; 
add_here.appendChild(src); 
+0

您可能希望在您的示例中包含您要执行的脚本。 此外,您可能会尝试在您的脚本元素中添加: type =“text/javascript” 。 – cjstehno 2010-01-15 22:11:32

+0

脚本包含类似于:function update_38172(){...}。这个数字是由Rails生成的。添加到此脚本时,此函数可用:update_38172();它运行,但只有一次。插入完成后'

0

如果要包含JavaScript入目,你可能会做这样的事情:

$$('head').first().insert({ 
    bottom: new Element('script', { 
     type: 'text/javascript' 
    }).update('function helloWorldToConsole(){console.log("Hello World!")}') 
}); 

这将创建一个新的脚本,并将其插入到你的头的底部。但是如果你添加一个外部JavaScript文件,这样会更好:

$$('head').first().insert({ 
    bottom: new Element('script', { 
     type: 'text/javascript', 
     src: 'http://www.example.com/path/file.js' 
    }) 
}); 

你可以在脚本中稍后使用这些函数。

-1

试试这个..

$('<script></script>',{ 
    type:'custom', 
    id:'script1' 
    }).appendTo('head').attr('type','text/javascript'); 

    $('#script1').append(< add js code here >); 

});

相关问题