通过jQuery插入带有script标签的代码



在我的HTML文件中,我有一个内联if声明:

<script>
if(navigator.userAgent.indexOf("Speed Insights") == -1) {
// insert code here
}
</script>

我如何使它打印代码与<script>标签里面?

我已经尝试过了

我试了如下:

if(navigator.userAgent.indexOf("Speed Insights") == -1) {
jQuery('footer').append('<script type="text/javascript" src="//downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js" data-dojo-config="usePlainJson: true, isDebug: false"></script><script type="text/javascript">window.dojoRequire(["mojo/signup-forms/Loader"], function(L) { L.start({"baseUrl":"x","uuid":"x","lid":"x","uniqueMethods":true}) })</script>');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<footer></footer>

但是它坏了。很可能,我没有正确地逃避它…?

我只是想在评论中复制@Chris G的答案,以便它对有类似问题的人更容易阅读。代码来源:link

if (navigator.userAgent.indexOf("Speed Insights") == -1) {
const $chimp = jQuery("<script>");
$chimp.attr('data-dojo-config', "usePlainJson: true, isDebug: false");
$chimp.on('load', function() {
window.dojoRequire(["mojo/signup-forms/Loader"], function(L) {
L.start({
"baseUrl": "x",
"uuid": "x",
"lid": "x",
"uniqueMethods": true
})
})
});
jQuery('footer').append($chimp);
$chimp.attr('src', "//downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<footer>Footer</footer>

使用此代码

var head = document.getElementsByTagName('footer')[0];
var js = document.createElement("script");
js.type = "text/javascript";
if(navigator.userAgent.indexOf("Speed Insights") == -1) {
js.src = "/downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js" data-dojo-config="usePlainJson: true, isDebug: false";
js.content = "window.dojoRequire(["mojo/signup-forms/Loader"], function(L) { L.start({"baseUrl":"x","uuid":"x","lid":"x","uniqueMethods":true}) })"
}
footer.appendChild(js);

试试这个代码

<script>
if(navigator.userAgent.indexOf("Speed Insights") == -1) {
var scriptElement = document.createElement('script');
scriptElement.setAttribute('src', '//downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js');
scriptElement.setAttribute('data-dojo-config', 'usePlainJson: true, isDebug: false');
document.body.appendChild( scriptElement );

window.dojoRequire(['mojo/signup-forms/Loader'], function (L) {
L.start({ baseUrl: 'x', uuid: 'x', lid: 'x', uniqueMethods: true });
});
}
</script>

最新更新