Вызовите функцию Javascript в дочернем фрейме с сайтом междоменного домена, но с тем же файлом JS - PullRequest
3 голосов
/ 27 апреля 2011

Я пытаюсь сделать следующее:

Основной документ вызывает функцию в iFrame, чей URL-адрес находится в другом месте , но функцию Javascript, которую я пытаюсь вызвать, загружается из домена, в котором находится основной документ .

Есть ли способ сделать это?

уточнить:

Я получаю

Permission denied to access property 'js_function'

При выполнении

document.getElementById("iframe").contentWindow.js_function(n)

Ответы [ 3 ]

5 голосов
/ 27 апреля 2011

Несмотря на то, что скрипт размещен на main.com, он выполняется в контексте example.com и, следовательно, считается частью example.com ... и поэтому не имеет доступа к переменнымили функции в окне main.com.Вы можете взломать это с помощью различных кросс домен связи хаков (или вы можете игнорировать IE <8 и использовать <a href="http://ejohn.org/blog/cross-window-messaging/" rel="noreferrer">window.postMessage само по себе).

СМОТРИТЕ ТАКЖЕ: http://stevehanov.ca/blog/index.php?id=109

1 голос
/ 27 апреля 2011

Я вижу, что ты делаешь. Был "взлом", который использовал два iframe (если я правильно помню). И этот хак, и тот, который вы упомянули здесь, ужасно неясны, и я не удивлюсь, если они будут сознательно заблокированы.

Лучшее исправление, которое я могу придумать, - это загрузить код для js_function() в главное окно (вне iframe).

Можете ли вы более подробно рассказать о том, что делает код JS? Я могу помочь лучше.

0 голосов
/ 02 мая 2011

Используйте функцию RPC easyXDM, она объединяет XDM с RPC. Пример этого можно увидеть здесь: http://consumer.easyxdm.net/current/example/methods.html

...