Ошибки IE8 при попытке вызвать функцию на родительской странице изнутри iFrame - PullRequest
2 голосов
/ 27 января 2011

У меня есть родительская страница с функцией, закодированной так:

function testfunction() {
    alert('hi');
}

Эта страница имеет iFrame, закодированный так:

<iframe src="testinside.htm"></iframe>

Testinside.htm имеет эту ссылку, которая вызывает функцию на родительской странице:

<a href="#" onclick="parent.testfunction();">Test</a>

В FireFox и Chrome все это прекрасно работает, но в IE8 появляется следующее сообщение об ошибке:

Объект не поддерживает это свойство или метод

Что я сделал не так?

Ответы [ 3 ]

3 голосов
/ 13 апреля 2011

Попробуйте изменить раздел скрипта на:

<script type="text/javascript">
    function testfunction() {
        alert('hi');
    }
</script>

и iframe для:

<iframe src="http://www.psychiatrist.com/psychstalk/test/testinside.htm"></iframe>

, затем убедитесь, что вы загружаете тест с этим URL:

http://www.psychiatrist.com/psychstalk/test/test.htm

По какой-то причине скрипт должен иметь тип "text / javascript", чтобы он работал. Следующая проблема - междоменные проблемы. Iframe src должен точно соответствовать URL родительского элемента.

1 голос
/ 27 января 2011

Вы пробовали window.parent.testfunction()?Кажется, я вспомнил проблему, подобную этой.

Вы пытались определить родительскую функцию как

window.testfunction = function(){}...

Я просто пытаюсь угадать, почему IE будетпотерпеть неудачу в этом.Возможно, глобальные функции не привязываются автоматически к window в IE.

Если вы не можете понять это, вы можете попробовать опросить от родителя к потомку, ожидая, пока какой-нибудь метод hasBeenClicked вернется.true.

0 голосов
/ 12 июля 2013

У меня была похожая проблема.

Я пытался получить доступ к переменной, определенной в родительском файле iframe
<script type="text/javascript" src="example.js"/>, но безуспешно, но когда я переместил определение переменной в тело iframe в <script type="text/javascript"> var myVar = ""</script>, все работает.

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