如果符合条件,请添加脚本

时间:2018-06-01 14:55:39

标签: javascript jquery indexof

我只是在页面网址不包含单词“cms'”时才尝试向网页添加脚本。这是因为脚本会破坏页面的后端,但在前端工作正常。

这是我到目前为止所拥有的;

<script>
     if(window.location.href.indexOf("cms") == -1) {
          $('head').append('<script type="text/javascript" src="https://downloads.mailchimp.com/js/signup-forms/popup/embed.js" data-dojo-config="usePlainJson: true, isDebug: false"></script><script type="text/javascript">require(["mojo/signup-forms/Loader"], function(L) { L.start({"baseUrl":"mc.us17.list-manage.com","uuid":"INSERT_STRING","lid":"INSERT_STRING"}) })</script>');
}
</script>

但它不起作用;我在代码编辑器中得到的错误是未关闭的字符串文字。我认为问题在于它认为我关闭脚本标签然后在那之后给它更多的JS。我试过更换报价但无济于事。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

可以动态添加带有ajax下载的内容的脚本:

var x = document.createElement("script");
x.textContent = "window.test = function(){console.log('xx')}";
document.head.appendChild(x)

运行

test()

在控制台中将触发该方法。

但是在你的情况下,它有点复杂,因为你同时添加了2个脚本。动态加载脚本的问题是您必须特别注意按顺序加载它们。

Tbh,如果脚本破坏后端与前端工作,我对你的问题有点不清楚。具有cms的页面与其他页面有何不同?

另外,在前端动态添加脚本很难做到。如果你这样做是为了解决问题 - 可能有更容易/更好的解决方案

相关问题