gpt4 book ai didi

javascript - 使用 ScriptInjector GWT 注入(inject) ajax

转载 作者:行者123 更新时间:2023-11-30 14:01:25 28 4
gpt4 key购买 nike

我想将 ajax(从 Web 服务检索数据)注入(inject)到由 GWT 生成的 html 代码中。

我尝试使用 ScriptInjector 注入(inject) jQuery 的 cdn 和我的脚本。

下面是我如何将 cdn 注入(inject)到我的 html 的头部:

Element head = Document.get().getElementsByTagName("head").getItem(0);
ScriptElement sce = Document.get().createScriptElement();
sce.setSrc("http://code.jquery.com/jquery-3.1.1.min.js");
head.appendChild(sce);

效果很好,我检查了我的页面,它已添加到头部。

下面是我尝试注入(inject)脚本以从我的 Web 服务获取数据的方式:

ScriptInjector.fromString(" $.ajax({\n" +
" dataType: \"json\",\n" +
" url: \"http://localhost/geoTrackerTest.php?id=15\",\n" +
" data: \"data\",\n" +
" success: function(data){\n"
+" console.log(\"success\");" +
" document.getElementById(\"frigoTempAjax\").innerHTML = data[0].frigo_temperature;\n" +
" }\n" +
"});").inject();

我希望在控制台上收到一条成功消息,并在具有指定 Id 的 div 中获取一个值,但我收到以下错误:

ReferenceError: $ 未定义

最佳答案

默认情况下,ScriptInjector 将注入(inject)运行 GWT 代码的隐藏 iframe;您需要告诉它注入(inject)到您的页面,即 jQuery 脚本所在的位置。

ScriptInjector.fromString(…).setWindow(ScriptInjector.TOP_WINDOW).inject();

但在这种情况下,最好用等效的 GWT 代码替换 jQuery 代码(使用 com.google.gwt.httpcom.google.gwt.xhr)

关于javascript - 使用 ScriptInjector GWT 注入(inject) ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56249272/

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