以下代码仅显示http://myurl.com/上的<span>
,但不会在http://myurl.com/files/target.html上显示<span>
,那么我怎样才能让它在指定域的所有网页上运行?请帮忙。
<script type="text/javascript">
var myurl = "http://myurl.com/";
var currenturl = window.location
if(myurl != currenturl) {
$("<span style=font-size:200px;>big</span>").replaceAll("body"); // check replaceWith() examples
}
</script>
答案 0 :(得分:3)
这应该有效:
<script type="text/javascript">
var myurl = "www.myurl.com";
var currenturl = window.location.hostname;
if(myurl != currenturl) {
$("<span style=font-size:200px;>big</span>").replaceAll("body"); // check replaceWith() examples
}
</script>
答案 1 :(得分:2)
你写的内容不起作用,因为 window.location 返回一个Location对象,它是一个宿主对象。变量 myurl 是一个字符串。使用equals运算符比较字符串和对象时,会将字符串与调用对象的 toString 方法的结果进行比较。
主机对象不一定具有 toString 方法,因此尝试调用它可能会引发错误。即使浏览器的 location 对象具有 toString 方法,它也可以返回一个字符串,该字符串是这些属性中任何一个属性的值,或其他内容。
实际上,在大多数浏览器中, window.location.toString()将返回当前URL(在Moziall's Gecko DOM Reference中指定)。但是, myurl 包含字符串 http://myurl.com/ ,URL通常包含更多信息,例如当前显示的页面。
要匹配 myurl ,您需要协议(http :)分隔符(//),主机名(myurl.com)和尾随“/”字符,因此:
var loc = window.location;
myurl = loc.protocol + '//' + loc.hostname + '/';
或者您可以格式化 myurl 以匹配 location 对象的其中一个属性,以使比较更简单。
PS。 HTML5是第一次跨浏览器标准化窗口对象的尝试,所以期望它在不同的浏览器程序中有所不同 - 防御性和广泛测试。