如何在特定页面上不执行JS代码

时间:2018-09-24 13:34:46

标签: javascript

我有这段代码可以防止在ucp.php?mode = register页面上执行,但是我希望它可以在其他页面上运行。使用此代码,它不起作用(不在所有网页上执行)。

<script>
if ( window.location.toString().match(/[/ucp.php\?mode=register]/)){ 
    var fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript")
    fileref.setAttribute("src","//sk.search.etargetnet.com/generic/uni.php?g=5:500")
    fileref.setAttribute("async","true")
    fileref.setAttribute("data-ad-type","iframe v2.0")
    fileref.setAttribute("charset","utf-8")

 }
</script>

如何防止执行此JS:

    <script type="text/javascript" async="true" data-ad-type="iframe v2.0" charset="utf-8" src="//sk.search.etargetnet.com/generic/uni.php?g=5:500"></script>

在ucp.php?mode = register上的页面

那是问题。

4 个答案:

答案 0 :(得分:3)

在脚本的第一行,检查与if ( window.location.toString().match(/[/ucp.php\?mode=register]/)){匹配的网址

您需要更改它以包括您要脚本使用的所有URL。由于我们不知道您想知道哪些页面,因此无法确切告诉您该放在哪里。

如果您希望它能在所有页面上正常工作,只需删除if ...和关闭{if的}

答案 1 :(得分:0)

如果您希望它在除要搜索的页面之外的所有页面上执行,则需要先取消匹配,因为您正在搜索该特定页面并且希望该页面为相反。

第二,您的正则表达式已损坏。您需要转义这几个字符,因为它们充当控制字符,并且对正则表达式解析器来说是非常特定的含义。

<script>
if ( !window.location.toString().match(/\/ucp\.php\?mode=register/g)){ 
    var fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript")
    fileref.setAttribute("src","//sk.search.etargetnet.com/generic/uni.php?g=5:500")
    fileref.setAttribute("async","true")
    fileref.setAttribute("data-ad-type","iframe v2.0")
    fileref.setAttribute("charset","utf-8")
    document.getElementsByTagName('head')[0].appendChild(fileref);
 }
</script>

这就是为什么人们开玩笑解决正则表达式问题现在为您带来两个问题的原因。

答案 2 :(得分:0)

尝试以下方法代替您的方法:

if (/\/ucp\.php\?mode=register$/i.test(window.location.href)==false){ 
     //your codes ....
 }

您还可以将脚本动态添加到document.head

if (/\/ucp\.php\?mode=register$/i.test(window.location.href)==false){ 
     var scr=document.createElement("script");
     scr.src="//sk.search.etargetnet.com/generic/uni.php?g=5:500";
     scr.type="text/javascript";
     document.head.appendChild(scr);
 }

答案 3 :(得分:-1)

尝试一下,用php而不是JavaScript处理逻辑

<?php if(isset($_GET['mode']) && isset($_GET['mode']!="register")) {
<script>

    var fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript")
    fileref.setAttribute("src","//sk.search.etargetnet.com/generic/uni.php?g=5:500")
    fileref.setAttribute("async","true")
    fileref.setAttribute("data-ad-type","iframe v2.0")
    fileref.setAttribute("charset","utf-8")

 }
</script>
<?php } ?>
相关问题