Javascript 在iPhone上设置innerHTML

Javascript 在iPhone上设置innerHTML,javascript,iphone,html,prototypejs,Javascript,Iphone,Html,Prototypejs,我正在以这种方式设置document元素的innerHTML属性: document.getElementById('some_element').innerHTML = newHTML; 这在桌面上的web浏览器和iPhone模拟器上运行良好。但在iPhone设备上,这种随机性很好。我的意思是,有时有效,有时无效。谷歌集团提出的一个解决方案是,尝试重复这个函数调用大约20次,其间暂停50毫秒。来吧关于那个神秘的延迟,有什么合乎逻辑的解释吗 以下是本期谷歌群组的链接: 该代码何时调用 我猜如

我正在以这种方式设置document元素的innerHTML属性:

document.getElementById('some_element').innerHTML = newHTML;
这在桌面上的web浏览器和iPhone模拟器上运行良好。但在iPhone设备上,这种随机性很好。我的意思是,有时有效,有时无效。谷歌集团提出的一个解决方案是,尝试重复这个函数调用大约20次,其间暂停50毫秒。来吧关于那个神秘的延迟,有什么合乎逻辑的解释吗

以下是本期谷歌群组的链接:

该代码何时调用

我猜如果在加载文档时调用此代码,比如onLoad(),DOM可能还没有完全加载

就我个人而言,对于这类事情,我只是简单地包括jQuery,并执行如下操作:

<script type="text/javascript" src="jquery-1.4.3.min.js"></script>

<script type="text/javascript">
  $(document).ready( function() {
      $('#some_element').html(newHTML);
  } );
</script>
NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"myHtmlFile" 
                                         withExtension:@"html"];

NSURLRequest *request = [NSURLRequest requestWithURL:fileUrl];

[webView loadRequest:request];
这可以确保在脚本触发之前完全加载DOM;从而避免了这种竞争条件

要包含jQuery,只需从他们的站点下载它,并将其放到您的Xcode项目中。或者,如果您的HTML文档是通过HTTP提供的,您可以将其放在服务器上HTML文件的旁边

哦,在我忘记之前。从项目加载我的HTML文件的代码如下所示:

<script type="text/javascript" src="jquery-1.4.3.min.js"></script>

<script type="text/javascript">
  $(document).ready( function() {
      $('#some_element').html(newHTML);
  } );
</script>
NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"myHtmlFile" 
                                         withExtension:@"html"];

NSURLRequest *request = [NSURLRequest requestWithURL:fileUrl];

[webView loadRequest:request];

希望能有所帮助。

注意,我是javascript初学者,只使用prototype.js。这个函数调用肯定是在启动时触发一次“dom:loaded”之后执行的,但我想你是对的。prototype.js中是否有类似document.ready的功能?请参阅上面更新的答案。:)从未使用过原型,但你的问题听起来确实像是比赛条件。哦,还要确保在处理函数之前没有加载任何外部JS文件/执行任何其他JS代码。