Доступ к полю ввода родительской страницы изнутри .js в iframe в том же домене - PullRequest
0 голосов
/ 15 октября 2011

У меня есть файл .js, который запускается на странице и взаимодействует с уже имеющимися данными.Этот файл .js создает iframe, который загружает другую страницу, на которой также установлен файл .js (оба с GreaseMonkey).Я пытаюсь заставить файл .js, работающий в iframe, получить переменную с родительской страницы.Оба находятся в одном домене, но не будут иметь доступа к данным.Вот что у меня есть:

js1:

var myvar1 = document.getElementsByName('nameofinputfromparentpage')[0].value;

js2:

var myvar2 = parent.document.getElementsByID('page1').getElementsByName('nameofinputfromparentpage')[0].value;

или

var myvar2 = myvar1 (or parent.myvar1 or window.myvar1 or a dozen other variances...)

Я пытался нажать varот js1 до js2 с чем-то вроде: window.frames[iframeName].variableName или используя contentDocument / contentWindow.Я просто не могу понять синтаксис правильно, чтобы заставить его фактически извлекать данные ...

Итак ... исходный код родительской страницы имеет поле ввода, как мне получить эту информациюбыть доступным в .js, работающем в iframe другого .js на родительской странице?Спасибо всем за вашу помощь!:)

1 Ответ

0 голосов
/ 15 октября 2011

Внутри IFrame родительское свойство ссылается на родительский, поэтому:

parent.document.getElementByID('myInputBox').value;

будет обращаться к содержимому элемента с идентификатором myInputBox, расположенным в родительском документе.В случае, если скрипт выполняется из документа верхнего уровня вне объекта фрейма, свойство parent = self.Обратите внимание, что свойство ID должно быть уникальным в пределах одного HTML-документа, поэтому функция getElementByID () не getElementsByID ().Также нет необходимости в индексе, потому что будет возвращен только один элемент.

...