gpt4 book ai didi

Javascript 回调函数没有被调用

转载 作者:行者123 更新时间:2023-12-03 00:56:10 25 4
gpt4 key购买 nike

这里我试图通过将函数传递给另一个函数来实现回调函数。在下面的示例中,onclick按钮调用invoke_reporting第一个参数textdata有一些文本格式的数据。也传递回调但没有被调用。

function invoke_reporting(textdata,callback) {

window.open("http://192.168.17.109/TestCopy_Report1/templates/ct-scan-head");

if (callback && typeof(callback) === "function") {

callback(textdata);
}
}

function callback(finaldata){
alertify("callback function");
document.getElementById("post-data").innerHTML = finaldata;

window.opener.document.getElementById('post-data').value = finaldata;
}

在新打开的窗口中,我想将文本数据值分配给这个新打开的窗口文本区域。

这是我的 HTML 代码:

<form id="report">
<div class="form-group">
<label for="post-data">Report Data(Text Format):</label>&nbsp;&nbsp;
<textarea class="form-control" rows="20" id="post-data" name="post-data"></textarea>
</div>
<div class="form-group">
<div class="col-sm-6"><button type="submit" class="btn btn-primary btn-block" name="launch" id="launch" onclick="invoke_reporting(document.getElementById('post-data').value)">Launch</button>
</div>
</div>

</form>

如有任何帮助,我们将不胜感激。

最佳答案

您似乎没有将回调函数传递给 invoke_reporting 函数

改变这个

<div class="col-sm-6"><button type="submit" class="btn btn-primary btn-block" name="launch" id="launch" onclick="invoke_reporting(document.getElementById('post-data').value)">Launch</button>

<div class="col-sm-6"><button type="submit" class="btn btn-primary btn-block" name="launch" id="launch" onclick="invoke_reporting(document.getElementById('post-data').value,callback)">Launch</button>

DEMO HERE

希望这有帮助。

编辑

要在新打开的窗口的文本区域中设置值,请尝试以下代码。

function invoke_reporting(textdata,callback) {

var newwindow = window.open("http://192.168.17.109/TestCopy_Report1/templates/ct-scan-head");

if (callback && typeof(callback) === "function") {

callback(textdata,newwindow);
}
}

function callback(finaldata,newwindow){
alertify("callback function");
newwindow.onload = function(){
newwindow.document.getElementById('post-data').value = finaldata;
};
}

我得到了来自this SO post的答复

关于Javascript 回调函数没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52828225/

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