获取 html 中使用 javascript 或 jquery 打开 ViewController.openExternalView 的元素

get element in html which was opened ViewController.openExternalView by using javascript or jquery

我尝试在 page1.html 中单击 Show Image 时显示 page2.html。我使用 ViewController.openExternalView 来显示 page2.html 因为 dijit.registry.byId("myPage1").performTransition('myPage2', 1, "slide", null); 不起作用。

当page2 显示时,我将page2 中图像的可见性更改为可见。但是 document.getElementById('myImgId') return null.

似乎脚本在 page2.html 加载之前执行。无论如何执行脚本以能够安全地获取元素?

道场版本:1.9.3

以下是我正在尝试的片段。

javascript

function showImage(){
 var vc = dojox.mobile.ViewController.getInstance();
 vc.openExternalView({
  url:"page2.html",
  transition:"slide"
 },dijit.registry.byId("container").containerNode);
 document.getElementById("myImgId").style.vilibility="visible";
}

page1.html

<div data-dojo-type="dojox.mobile.View" id="myPage1">
 ----some html tags----
 <li data-dojo-type="dojox.mobile.ListItem" data-dojo-props="variableHeight:true" >
  <div onclick="showImage();"><label>Show Image</label></div>
  <div>
   ----some more html tags----
   </div>
 </li>
</div>

page2.html

<div data-dojo-type="dojox.mobile.View" id="myPage2">
 <div data-dojo-type="dojox.mobile.Container">
  <img src="img1.png" id="myImgId" style="vilibility:hidden;"/>
 </div>
</div>

试试这个:

function showImage(){
 var vc = dojox.mobile.ViewController.getInstance();
 Deferred.when(vc.openExternalView({
  url:"page2.html",
  transition:"slide"
 },dijit.registry.byId("container").containerNode), function(){
     document.getElementById("myImgId").style.vilibility="visible";
 });     
}