我正在使用原型(prototype)插入函数来添加一些包含 <script>...</script>
的 html .在这个脚本中,我定义了一个新函数。当我读到here原型(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);
最佳答案
此函数将向页面头部添加一个脚本标记,无论您传递给它的是什么内容。
function insertScript(script_text) {
var script_tag = document.createElement('script');
script_tag.type = "text/javascript";
var script = document.createTextNode(script_text);
script_tag.appendChild(script);
document.getElementsByTagName('head')[0].appendChild(script_tag);
}
我对 jQuery 比对 Prototype 更熟悉,所以我只是用纯 JS 来做这件事。
如果需要,将我创建元素的部分和我获取 HEAD 元素的部分翻译成 Prototype,但使用对 appendChild 的调用而不是 Prototype 的 insert函数,因为它只会按照您的要求执行,而不是评估 JS。
当然,既然我已经了解了您的要求,您也可以尝试将要插入的代码更改为:
window.update_12345 = function() {...}
我不确定这是否适合它,但值得一试。
关于javascript - 如何使用 Prototype 插入 <script>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074982/