我有以下html:
<html>
<head></head>
<body>
<form>
<input id="msg" type="text" value="oldValue" />
</form>
<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script>
$().ready(function() {
var m = $("#msg");
alert(m.val()); // returns oldValue
m.val("newValue"); // this doesn't make the browser show newValue instead of oldValue
alert(m.val()); // returns newValue
// and in the end, the browser still shows oldValue for the input
});
</script>
</body>
</html>
此代码运行完美,但当放置在facebox(只创建iframe并将其显示为浮动窗口)时,代码无法更新输入的内容。
父母也有jQuery,但这不应该影响我想的任何东西。
任何想法为什么会失败?
答案 0 :(得分:1)
无法在Firefox 3,IE 7或Chrome 2上进行复制。代码工作正常(在适当的地方使用newValue
),无论它是否在iframe中。
您是否测试过缩减的样本实施,而不是原始样本?因为我怀疑我们遇到了一个问题,你认为它们是等价的而不是。
当然,好消息是,如果您发布的示例实现有效,那么您所要做的就是从实际实现中添加元素,直到出现故障。
答案 1 :(得分:-1)
doc = xframe.contentWindow.document || xframe.document || xframe.contentDocument || xframe.contentWindow && xframe.contentWindow.document || null;
if(!doc)
{
alert("Error");
return false;
}
var m = $(doc).find("#msg");