繁体   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