使用JavaScript进行URL检测

时间:2010-04-08 00:14:14

标签: javascript url detection

我正在使用以下脚本强制将特定页面(首次加载时)强制转换为(第三方)iFrame。

<script type="text/javascript">
    if(window.top==window) {
       location.reload()
    } else {
    }
</script>

(澄清:这个'嵌入'是由第三方系统自动完成的,但只有在页面刷新一次时才会完成 - 因为样式和其他一些原因我从一开始就想要它。)

现在,我想知道这个脚本是否可以通过检测其“父”文档的当前URL以触发特定操作的方式得到增强?假设第三方网站的网址为“http://cgi.site.com/hp/ ...”,iFrame的网址为“http://co.siteeps.com/hp/ ...”。是否有可能实现......像这样用JS:

<script type="text/javascript">
    if(URL is 'http://cgi.site.com/hp/...') {
       location.reload()
    }
    if(URL is 'http://co.siteeps.com/hp/...') {
       location.do-not.reload() resp. location.do-nothing()
    }
</script>

TIA josh

2 个答案:

答案 0 :(得分:7)

<script type="text/javascript">
    if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
       location.reload()
    }
    if(/^http:\/\/co.siteeps.com\/hp\//.test(window.location)) {
       location.do-not.reload() resp. location.do-nothing()
    }
</script>

当然,第二个if是多余的,所以你可以简单地这样做:

<script type="text/javascript">
    if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
       location.reload()
    }
</script>

您在这里做的是使用正则表达式测试window.location,看它是否与您想要的网址匹配。

如果您想引用父母的网址,可以使用parent.location.href

根据您的评论,如果您想要执行 else ,您可以执行以下操作:

<script type="text/javascript">
    if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
       location.reload()
    }
    else if(/^http:\/\/co.siteeps.com\/hp\//.test(window.location)) {
       //do something else
    }
</script>

如果你在其他情况下做没有,那实际上是一个NOP(没有操作)所以你甚至不需要那里的其他(或其他的),因为它将是一个空块。

答案 1 :(得分:2)

您可以使用window.location.href获取URL以进行字符串比较。如果你在iframe中,并且需要知道父母网址parent.location.href应该得到你。