使用javascript在onclick事件后更改iframe中元素的值

时间:2009-11-30 12:54:14

标签: javascript iframe

我在iframe中有一些与onclick事件关联的元素,例如:

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

在名为I的函数中,尝试更改输入的值,没什么特别的:

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

此时我可以在firebug中看到值已经改变但是当函数完成时该值根本没有改变。

与onmouseover同样的事情似乎有效。

有什么想法吗?

感谢。

编辑:更改代码错误

2 个答案:

答案 0 :(得分:1)

'this'在不同的上下文中意味着不同的东西

假设:

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

'this'是输入(因为它被称为myInput.onclick())

可是:

function someFunction(foo) {
    this.value;
}

你打电话给:

someFunction(myInput)

相同
window.someFunction(myInput)

所以在那个上下文中,'this'是窗口对象。

改为使用'foo'(因为那是函数声明中的参数名称)。

答案 1 :(得分:0)

未为iframe代码定义值。 在Javascript中,“value”成员仅在设置时添加到对象中, 但导航员当然没有考虑到这一点。

对于设置内容(div也是这种情况),您应该使用:

this.innerHTML =“已更改!”;

this.innerText =“已更改!”;