если указанный домен не равен текущему URL, примените этот jquery, а также страницы с тем же доменом - PullRequest
0 голосов
/ 03 октября 2011

Приведенный ниже код показывает только <span> на http://myurl.com/, но не показывает <span> на http://myurl.com/files/target.html, так как я могу заставить его работать на всех страницах с указанным доменом? пожалуйста, помогите.

<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>

Ответы [ 2 ]

3 голосов
/ 03 октября 2011

Это должно работать:

<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>

За MDN Документы: https://developer.mozilla.org/en/window.location

2 голосов
/ 03 октября 2011

То, что вы написали, не работает, потому что window.location возвращает объект Location , который является хост-объектом.Переменная myurl является строкой.При сравнении строки и объекта с использованием оператора equals строка сравнивается с результатом вызова метода toString объекта.

Хост-объекты не обязательно имеют toString, поэтому попытка его вызвать может привести к ошибке.Даже если объект location браузера имеет метод toString , он может вернуть строку, которая является значением любого из этих свойств, или что-то еще.

Как это бывает, в большинстве браузеров window.location.toString () будет возвращать текущий URL (который указан в Справочнике по Gecko DOM от Moziall ).Однако myurl содержит строку http://myurl.com/, а URL-адрес обычно содержит дополнительную информацию, например, текущую отображаемую страницу.

Для соответствия myurl ,вам нужен протокол (http :) разделитель (//), имя хоста (myurl.com) и завершающий символ "/", поэтому:

var loc = window.location;
myurl = loc.protocol + '//' + loc.hostname + '/';

Или вы можете отформатировать myurl чтобы соответствовать одному из свойств объекта location , чтобы сделать сравнение проще.

PS.HTML5 - это первая попытка стандартизировать объект окна в разных браузерах, поэтому ожидайте, что он будет немного отличаться в разных браузерах - программируйте в обороне и тестируйте широко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...