букмарклет: не удается найти элемент, добавленный в документ - PullRequest
0 голосов
/ 21 июня 2010

Я играю с букмарклетами.Я добавляю рамку к документу и загружаю некоторые элементы, например, так:

var myframe=document.createElement("iframe");
myframe.setAttribute('id','a_frame');
myframe.src='http://localhost:81/nframe.html';
document.body.insertBefore(myframe,document.body.firstChild);

Вот так выглядит файл nframe.html:

<form id="sr_cart" name="sr_cart" action="localhost:81/dosomething.php">
Item Number: <input type="text" name="ItemNum" id="sr_item" value="" /> 
<input type="submit" value="Submit" /> 
</form>

Выглядит великолепно: когда янажмите на мой букмарклет, документ был изменен правильно

Затем я пытаюсь найти номер элемента (или форму)

cart = document.getElementById('sr_cart');

Я озадачен, почему это возвращаетсяноль.(поиск sr_item делает то же самое. Поиск чего-то, чего нет в моем кадре, работает нормально)

TIA

1 Ответ

0 голосов
/ 21 июня 2010

Вы ищете не тот document.Начните с iframe document, вот так:

var docEl = myframe.contentDocument || myframe.contentWindow.document || myframe.document;

if (docEl) {
    var cart = docEl.getElementById('sr_cart'); // this is what you need
}

Я почти уверен, что это то, что вам нужно сделать - я уже делал это раньше, но нашел подтверждение в инструментах закрытия'код (JS-библиотека Google) - http://code.google.com/p/doctype/wiki/ArticleFrameContentDocument

...