(对不起,如果这不是合适的论坛发布 - 我找不到任何与非本地编程相关的任何内容并与此主题相关)问题 - 在Windows Mobile 6.1上使用Javascript设置动态HTML到iFrames - IE Mobile6
我正在尝试将动态HTML设置到网页上的iFrame中。我已经尝试了几件事情,但没有一件似乎有效。我能够阅读innerHTML,但似乎无法更新它。
// Able to read using
document.getElementById('iFrameIdentifier').innerHTML;
// On Desktop IE, this code works
document.getElementById('iFrameId').contentWindow.document.open();
document.getElementById('iFrameId').contentWindow.document.write(dynamicHTML);
document.getElementById('iFrameId').contentWindow.document.close();
理想情况下,同样的功能应该工作,因为它是如何工作的div的,但它说“对象不支持此方法或属性”。
我也曾尝试的document.getElementById(‘iFrameId’) .document.body.innerHTML。
这显然取代了首页的整个HTML而不是仅仅的innerHTML。
我已经尝试了一对夫妇的事情,他们没有工作
- 的document.getElementById( 'iFrameId')。body.innerHTML
- document.frames [0] .document.body.innerHTML
我的目的是具有可以包含动态HTML的容器元素这是为它设置的。
我一直在使用它,直到现在,当我观察到由于onClicks或其他JS方法附加到动态HTML中的锚点和图像,div上的设置innerHTML需要花费更多的时间。出现JS方法或HTML是一些如何没有得到正确清理
也正在讨论(内存泄漏?) - http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_26185526.html#a32779090
你能解释一下这个 “使用事件存根(的onclick =”返回this._onclick()“)在HTML写作一起_onclick如果你需要设置从JavaScript事件处理程序,优先于重新创建HTML与一个新的事件处理程序(或只是试图设置该属性,这当然不适用于IEMobile)。“ 我完全不知道你要求我改变什么。我通常使用onClick属性定位标签或图片。我也有像文本框和文本区等输入元素onChange() – Swaroop 2010-05-19 11:56:57
我在说的是,你不能从IEMobile,即''document.getElementById('x' ).onclick = somefunction'。您可以附加到'click'事件的唯一方法是使用HTML中的实际内联事件处理程序,如''。这通常是可怕的做法,要避免,并且这意味着您不能在不重新创建HTML(并因此泄漏内存)的情况下更改事件处理程序。使用一个存根'onclick'属性可以避免这个问题,这个''onclick'属性只是转发到一个'_onclick'属性,你可以从JavaScript写入。 – bobince 2010-05-19 13:48:22
我现在了解存根实施。但是我每次都会替换整个HTML(动态),而不仅仅是onClick()属性。 我喜欢这个想法,尽管使用存根,我们可以通过清除JS实现使用的内存来清除存根实现,就像断开指针一样。 但我坚持在同一页面上使用动态HTML的主要原因之一是为了避免每次都重新加载Javascript。我有一次加载JS实现,动态HTML多次使用它。 – Swaroop 2010-05-20 09:29:59