我正在使用GXT的sencha
我们有一个名为“dashboard”的Web应用程序 url = localhost:8080 / dashboard /
我们有另一个名为issuetracker的web应用程序
url = localhost:2990 / issuetracker /
现在我在issuetracker Web应用程序中有一个速度模板,我在其中给出了以下代码
<iframe src="localhost:8080/dashboard" width="500" height="600">
</iframe>
当我单击仪表板Web应用程序中的按钮时,issuetracker应用程序的URL应该更改为“localhost:8080 / issuetracker / issues?mqlVersion = 25”。 这25个值来自仪表板Web应用程序。
当我尝试编写jsni代码时,没有出现以下任何值 最顶层窗口的网址是“localhost:2990 / issuetracker /”
我哪里错了? 任何建议。
答案 0 :(得分:1)
在JSNI中使用
$wnd
而不是window
。
尝试(清理浏览器缓存)
JSNI
Window.Location.replace(url);
public static final native String getParentWindow() /*-{
return $wnd.parent.location.href;
}-*/;
JSP / HTML
<script type="text/javascript">
function changeURL() {
try {
window.parent.location.href = 'http://localhost:8080/issuetracker/issues?mqlVersion=25';
} catch (e) {
window.location.href = 'http://localhost:8080/issuetracker/issues?mqlVersion=25';
}
}
</script>
示例代码
JSP / HTML
<div>
<div id='myDiv'>hello</div>
<iframe src="localhost:8080/dashboard" width="500" height="600">
</iframe>
</div>
仪表板入口点类:
public static final native Element getParentElementById(String id) /*-{
return $wnd.parent.document.getElementById(id);
}-*/;
....
public void onModuleLoad() {
getParentElementById("myDiv").setInnerHTML("hi");
}
输出:
hello
的内部HTML myDiv
已替换为hi
。