簡體   English   中英

將窗口移動到iframe而不重新加載

[英]Move window to iframe without reloading

即使我點擊一個鏈接,我也不會制作一個會保留其實例的用戶腳本。

為了使腳本實例(即變量等)保持不變,我需要在iframe中使用頁面,這是運行腳本的窗口的子項。 而且,父文檔位置必須與內部文檔位置相同 - 否則我會遇到相同原始策略的問題。

那就是說,我不想這樣做:

<html>
  <head>
    ...
  </head>
  <body>
     ...page contents...
  </body>
</html>

進入這個:

<html>
  <head>
    ...here is my userscript running...

  </head>
  <body>
     <iframe style="width: 100%; height: 100%">
        ...move the whole original window here...

     </iframe>
  </body>
</html>

Unles鏈接有target="_blank/_parent/_top"所有瀏覽活動都應該在內部iframe中發生,而父窗口不應該刷新(這會導致腳本丟失所有變量)。

一種方法是簡單地創建一個iframe,其中包含與我網站的網址相同的網址:

var container = document.createElement("iframe");
container.src = window.location;

但是,這種方法會導致頁面重新加載以及丟失所有數據(填充表單,滾動)。

因此,將window的所有內容移動到iframe。 那可能嗎?

也許您可以獲取document.head.outerHTML和document.body.outerHTML的內容,將它們組合成一個字符串,base64對其進行編碼,然后使用結果構造一個dataURL,然后將其設置為iframe的src。

雖然我可以看到遞歸將這個想法變成了一種效果,類似於將一個攝像機指向屏幕顯示它的外觀。

有趣的問題。 書簽。

暫無
暫無

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

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