下面的代码只显示了http://example.com/上的<span>
,但不会显示http://example.com/files/target.html上的<span>
,所以我怎么能让它在指定域的所有页面上工作?请帮助。
<script type="text/javascript">
var myurl = "http://example.com/";
var currenturl = window.location
if(myurl != currenturl) {
$("<span style=font-size:200px;>big</span>").replaceAll("body"); // check replaceWith() examples
}
</script>
应该可以:
<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>
Per MDN Docs: https://developer.mozilla.org/en/window.location
你写的东西不起作用,因为窗口。location返回一个location对象,它是一个主机对象。变量myurl是字符串。当使用equals操作符比较字符串和对象时,将字符串与调用对象的toString方法的结果进行比较。
Host对象不一定有toString方法,因此尝试调用它可能会抛出错误。即使浏览器的location对象有toString方法,它也可以返回一个字符串,该字符串是这些属性中的任何一个的值,或者其他的值。
事实上,在大多数浏览器中window.location.toString()将返回当前URL(在mozilla的Gecko DOM Reference中指定)。但是,myurl包含字符串http://myurl.com/, URL通常包含更多信息,例如当前显示的页面。
要匹配myurl,您需要协议(http:)分隔符(//)、主机名(myurl.com)和后面的"/"字符,因此:
var loc = window.location;
myurl = loc.protocol + '//' + loc.hostname + '/';
或者您可以格式化myurl以匹配location对象的一个属性,从而使比较更简单。
p。HTML5是跨浏览器标准化窗口对象的第一次尝试,所以它在不同的浏览器中会有所不同——防御性编程和广泛测试。