Ошибка функции window.opener.location.indexOf () - PullRequest
4 голосов
/ 24 декабря 2011

Я пытаюсь закрыть дочернее окно, если имя хоста совпадает с именем родителя и потомка, но его

<script type="text/javascript">
    $(document).ready(function () {
        if (window.opener) {
            if (window.opener.location.indexOf(document.location.hostname) != -1) {
                window.opener.location = window.location;
                window.close();
            }
        }
    });
</script>

, и получаю эту ошибку

Error: window.opener.location.indexOf is not a function
Source File: https://example.com/default
Line: 100

Ответы [ 2 ]

9 голосов
/ 24 декабря 2011

Объект location не является строкой, массивом или любым другим объектом, который имеет метод indexOf.Возможно, вы хотели использовать opener.location.href.indexOf(...)?

2 голосов
/ 24 декабря 2011

Проблема в том, что location это не String, это Location объект. Вы можете использовать toString метод location, чтобы преобразовать его в строку:

window.opener.location.toString().indexOf(document.location.hostname)
...