簡體   English   中英

從iframe中滾動父文檔

[英]Scrolling a parent document from within an iframe

我有兩個這樣的文件:

HTTP://mydomain/nsobd.html

<html>
    <body>
        <p name="parentElem" id="parentElem">No sign of Big Dave</p>
        <iframe src="http://subdomain.mydomain/nsobd2.html"></iframe>
    </body>
</html>

HTTP://subdomain.mydomain/nsobd2.html

<html>
    <body>
        <a href="???" id="childLink">No sign of Big Dave</a>
    </body>
</html>

我想要的是,當有人單擊iframe中的childLink時, parentElem滾動到視圖中。

我努力了:

  1. 使用<a href="#parentElem" target="_parent"> -這會在父框架中加載http://subdomain.mydomain/nsobd2.html#parentElem
  2. 使用<a href="javascript:document.findElementById('parentElem').scrollIntoView()"> -由於兩個文檔位於不同的子域上,因此無法使用。

還有其他想法嗎?

由於您正在嘗試在兩個域之間進行通信,因此簡短的答案是您不能。 您不能因為在瀏覽器級別上設置的限制而禁止跨站點腳本。

例如,假設我注冊了域名superwinningcontest.com,並發送了指向人們電子郵件的鏈接。 當他們加載主頁時,我可以在其中隱藏一些iframe並閱讀他們的Facebook提要,查看最近的Amazon或PayPal交易,或者-如果他們使用的服務沒有實現足夠的安全性,則可以從他們的帳戶中轉出資金賬戶。 這就是JavaScript僅限於相同域和相同協議的原因。 [ 來源 ]

但是,您可以通過跨文檔消息傳遞實現您的目標。 github項目的舷窗也許可以為您提供幫助。 因此,您無需向iframe調用或在父窗口中執行某些功能,而是向父窗口發送一條消息“嘿,介意滾動到X嗎?” 來自iframe。 當父框架收到此消息時,它可以決定執行某些功能,然后可能滾動到位置X。

這個StackOverflow線程上似乎有許多相關的答案。 例如,在此答案中 ,用戶實施了一個跨文檔消息傳遞方案,該方案可能對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM