2

そこで、Html5DemosでHtml5PostMessageサンプルをいじって、サンプルjsfiddleを作成して、それがどのように連携するかを理解しているかどうかを確認しました。

デモdocument.getElementById(...)では、jQueryセレクターに置き換えることができると思っていたものを使用$("#...")していますが、jQuery selectから返されたオブジェクトにはアクセス権がないため、行き詰まりましcontentWindowdocument.getElementById(...)

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

セレクターから結果オブジェクトを呼び出して、から表示される結果に戻るために、多くのメソッドのどれを呼び出すかを知るために、jQueryに完全に精通しているわけではありませんdocument.getElementById(...)

4

1 に答える 1

7
$("#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!

更新されたフィドル

idしかし、jQueryを使用してDOM要素を選択して抽出し、jQueryをまったく使用しないのは厄介だと思います。何が問題なのdocument.getElementByIdですか?それらの15の余分な文字?

于 2012-04-25T20:31:54.083 に答える