Изменить значение элемента внутри iframe после события onclick с помощью javascript - PullRequest
1 голос
/ 30 ноября 2009

У меня есть некоторые элементы внутри iframe с ассоциированным событием onclick, что-то вроде:

<iframe>
 ... 
    <input type="text" onclick="somefunction(this)"/>
 ...
</iframe>

В вызываемой функции я пытаюсь изменить значение ввода, ничего особенного:

{
...
foo.value = "changed!"
...
}

В этот момент я вижу в firebug, что значение изменилось, но когда функция завершает работу, значение вообще не меняется.

Похоже, работает то же самое с onmouseover.

Есть идеи?

Спасибо.

Редактировать: Изменить код ошибки

Ответы [ 2 ]

1 голос
/ 30 ноября 2009

«это» означает разные вещи в разных контекстах

Дано:

<input type="text" onclick="somefunction(this)"/>

'this' - это ввод (так как он называется myInput.onclick ())

Но:

function someFunction(foo) {
    this.value;
}

Вы звоните как:

someFunction(myInput)

что совпадает с

window.someFunction(myInput)

Итак, в этом контексте «this» является объектом окна.

Вместо этого используйте 'foo' (поскольку это имя аргумента в объявлении функции).

0 голосов
/ 30 ноября 2009

Значение не определено для тега iframe. В Javascript член «value» просто добавляется к объекту, когда он установлен, но, конечно, не учитывается навигатором.

Для настройки содержимого (это также относится и к div), вы должны использовать:

this.innerHTML = "Изменено!";

или

this.innerText = "Изменено!";

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