Dou*_*oug 95 javascript jquery script-tag javascript-injection
我在解决这个问题上遇到了问题.我首先尝试将脚本标记设置为字符串,然后使用jquery replaceWith()在页面加载后将它们添加到文档中:
var a = '<script type="text/javascript">some script here</script>';
$('#someelement').replaceWith(a);
Run Code Online (Sandbox Code Playgroud)
但是我在那个var上得到了字符串文字错误.然后我尝试编码字符串,如:
var a = '&left;script type="text/javascript">some script here<\/script>';
Run Code Online (Sandbox Code Playgroud)
但发送它replaceWith()只是将该字符串输出到浏览器.
有人可以告诉我你如何<script>在页面加载后动态地将标签添加到浏览器中,理想情况下通过jQuery?
Roc*_*mat 99
您可以将脚本放入单独的文件中,然后使用$.getScript它来加载和运行它.
例:
$.getScript("test.js", function(){
alert("Running test.js");
});
Run Code Online (Sandbox Code Playgroud)
Bas*_*sem 63
请尝试以下方法:
<script type="text/javascript">
// Use any event to append the code
$(document).ready(function()
{
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "http://scriptlocation/das.js";
// Use any selector
$("head").append(s);
});
Run Code Online (Sandbox Code Playgroud)
jco*_*and 32
以下是使用现代(2014)JQuery进行此操作的正确方法:
$(function () {
$('<script>')
.attr('type', 'text/javascript')
.text('some script here')
.appendTo('head');
})
Run Code Online (Sandbox Code Playgroud)
或者如果你真的想要替换你可以做的div:
$(function () {
$('<script>')
.attr('type', 'text/javascript')
.text('some script here')
.replaceAll('#someelement');
});
Run Code Online (Sandbox Code Playgroud)
ima*_*man 10
一种更简单的方法是:
$('head').append('<script type="text/javascript" src="your.js"></script>');
Run Code Online (Sandbox Code Playgroud)
您也可以使用此表单加载css.
这个答案在技术上与jcoffland回答的相似或相同.我刚刚添加了一个查询来检测脚本是否已经存在.我需要这个,因为我在一个内部网站上工作,有几个模块,其中一些是共享脚本或自带,但这些脚本不需要每次都加载.我在生产环境中使用这个片段超过一年,它就像一个魅力.评论自己:是的我知道,问一个函数是否存在会更正确... :-)
if (!$('head > script[src="js/jquery.searchable.min.js"]').length) {
$('head').append($('<script />').attr('src','js/jquery.searchable.min.js'));
}
Run Code Online (Sandbox Code Playgroud)
这是一种更清晰的方法 \xe2\x80\x94 不需要 jQuery \xe2\x80\x94 它将脚本添加为 的最后一个子元素<body>:
document.body.innerHTML +=\'<script src="mycdn.js"><\\/script>\'\nRun Code Online (Sandbox Code Playgroud)\n但如果您想添加和加载脚本,请使用Rocket Hazmat 的方法。
\n\n\n注意:它将取消声明的事件监听器。
\n
| 归档时间: |
|
| 查看次数: |
222087 次 |
| 最近记录: |