簡體   English   中英

無法在iframe中傳遞參數

[英]Can't pass my parameters in iframe

我在iframe中有一個帶有表單的父頁面: https : //profiel.pelckmansuitgevers.be/?email=dennis@hybridmedia.be

表格的所有字段均應預先填寫。 但這不再起作用。

如果您將email參數添加到url,則此參數將添加到iframe的源。

但是在我的iframe上,我無法獲取email參數。 我在iframe中這樣做:

var urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('email')) {
    var email = urlParams.get('email');

    //all my code here...
}

似乎urlParams為空。

但是,當我以隱身模式(chrome)打開頁面並進行硬刷新時,所有字段都被預先填充。 因此,它在這種情況下有效。

有人知道問題出在哪里嗎? 也許我的腳本正在嘗試接收email參數,但是那一刻不存在? 或者是其他東西?

謝謝!

您似乎有2個問題:

1) 您的iframe位於子域中 ,並且您沒有在iframe網址中發送email參數。 因此,某些瀏覽器(例如Google Chrome瀏覽器)將無法訪問該電子郵件。

解決此問題的示例代碼:

  var loc = window.location.toString(),
  params = loc.split('?')[1],
  iframe = document.getElementById('updateform');

  iframe.src = "https://pelckmans.houston-1.hybridmedia.be/update/pelckmansuitgevers/" + '?' + params + '&v=' + Date.now();

2) JS緩存問題


您可以通過更改解決此問題

<script src="js/prefill.js"></script>

    <script>document.write("<script type='text/javascript' src='js/prefill.js.php?v=" + Date.now() + "'><\/script>");</script>

在您的iframe頁面中https://pelckmans.houston-1.hybridmedia.be/update/pelckmansuitgevers/


當您開發JS並將其包含在.js文件中時,經常會發生此問題。

瀏覽器緩存js ...解決此問題的一種方法是,例如在js文件名之后添加時間戳,或者像我在代碼中所做的那樣添加版本號。

您可以在此線程中找到更多方法來執行此操作。 如何在<script>標記url中將時間戳附加到java腳本文件,以避免緩存

暫無
暫無

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

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