所以我在Html5 Demos处理了Html5 PostMessage示例,我创建了一个样本jsfiddle,看看我是否理解它是如何协同工作的。
该演示使用document.getElementById(...)
我认为可以用jQuery选择器$("#...")
替换,但是我被困在了,因为jQuery select中返回的对象无法访问{{ 1}}而contentWindow
的确如此。
document.getElementById(...)
我并不完全精通jQuery,知道从选择器调用结果对象的众多方法中的哪一个回到我将从document.getElementById("frame1").contentWindow.postMessage("Hello from another domain", "http://dl.dropbox.com"); // works
$("#frame1").contentWindow.postMessage("Hello from another domain", "http://dl.dropbox.com"); // no dice
看到的结果。
答案 0 :(得分:6)
$("#frame1") // This a jQuery object that encapsulate the DOM element.
$("#frame1")[0] // this is the DOM element.
//Or
$("#frame1").get(0) // this is the DOM element.
完整代码:
$("#frame1")[0].contentWindow.postMessage("Hello from another domain", "http://dl.dropbox.com"); // DICE!
但我发现使用jQuery选择id
然后从中提取DOM元素并且根本不使用jQuery是很尴尬的。 document.getElementById
有什么问题?那15个额外的字符?