基于JavaScript的URL检测
我使用下面的脚本强制将特定页面(第一次加载时)加载到(第三方)iFrame中基于JavaScript的URL检测,javascript,url,detection,Javascript,Url,Detection,我使用下面的脚本强制将特定页面(第一次加载时)加载到(第三方)iFrame中 if(window.top==窗口){ location.reload() }否则{ } (澄清一下:这种“嵌入”是由第三方系统自动完成的,但只有在页面刷新一次的情况下才进行——出于样式和其他一些原因,我希望从一开始就将其存在。) 现在,我想知道这个脚本是否可以通过检测其“父”文档的当前URL来触发特定操作的方式进行增强?假设第三方站点的URL为“…”,而iFrame的URL为“…”。有没有可能用JS实现这样的事情
if(window.top==窗口){
location.reload()
}否则{
}
(澄清一下:这种“嵌入”是由第三方系统自动完成的,但只有在页面刷新一次的情况下才进行——出于样式和其他一些原因,我希望从一开始就将其存在。)
现在,我想知道这个脚本是否可以通过检测其“父”文档的当前URL来触发特定操作的方式进行增强?假设第三方站点的URL为“…”,而iFrame的URL为“…”。有没有可能用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>
如果(URL是'http://cgi.site.com/hp/...') {
location.reload()
}
如果(URL是'http://co.siteeps.com/hp/...') {
location.do.not.reload()与location.do-nothing()相对应
}
蒂亚·乔什
<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>
如果在另一种情况下你什么也不做,那实际上是一个NOP(无操作),因此你甚至不需要那里的else(或另一个If),因为它将是一个空块。你可以使用
window.location.href
获取URL来进行字符串比较。如果你在一个iframe中,需要知道父母的URLparent.location.href
应该会让你知道。嗨,vivin!谢谢你的即时回复!我应该定义什么来代替“location.do.reload()resp”。location.do-nothing()'?是if…if。。。js可能吗?或者我需要一个“else”吗?假设我正确理解了您的逻辑流,您只希望在URL匹配时执行重新加载http://cgi.site.com/hp
。如果是这样的话,你就不需要别的了,因为你真的什么都没做。当然,如果您想做其他事情,那么您可以使用else if(…){…}
nice!如果实际的URL为例如“”,这也会起作用吗?当然。目前,正则表达式只匹配cgi.site.com
目录下的任何URL。如果希望它与站点中的任何内容匹配,则必须将正则表达式更改为/^http:\/\/cgi.site.com/
。如果您想让它更健壮一些(例如匹配https),可以使用/^https?:\/\/cgi.site.com/
<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>
<script type="text/javascript">
if(/^http:\/\/cgi.site.com\/hp\//.test(window.location)) {
location.reload()
}
</script>
<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>