gpt4 book ai didi

javascript - 触发 iframe 内 textarea 的 'change' 事件

转载 作者:行者123 更新时间:2023-11-30 17:36:35 25 4
gpt4 key购买 nike

我有一个页面 (index.htm),其中包含来自同一域的 iframe (iframe.htm)。

在 iframe 中有一个 textarea 元素处理它的 'change' 事件。

主页上有一个 jquery 代码,它使用 val() 更改文本区域的内容。然后我尝试触发调用 change() 函数的“change”事件。

但是,这是行不通的。值更改,但“更改”事件不起作用。如果 textarea 不在 iframe 内,这将按预期工作。

问题如何在 iframe 内的元素上强制触发事件?

iframe.htm:

<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$("textarea").bind("change", function () {
alert("changed"); });
});
</script>
</head>
<body>
<textarea id="txt"></textarea>
</body>
</html>

index.htm:

<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
$("#btn").bind("click", function () {
var frame = document.getElementById("frame");
var txt = frame.contentDocument.getElementById("txt");
$(txt).val("hello").change();
});
});
</script>
</head>
<body>
<iframe id="frame" src="iframe.htm"></iframe>
<button id="btn">Fire change</button>
</body>
</html>

最佳答案

试试这个:

    $iframe = $('#iframe').contents().find('#txt');

$iframe.on('change',function(){
var val = $(this).val();
console.log(val);
});

$('#btn').click(function(){
$iframe.trigger('change');
});

关于javascript - 触发 iframe 内 textarea 的 'change' 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21933867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com