【问题标题】:Capture incoming URL Parameters, then pass to iFrame Src with Javascript捕获传入的 URL 参数,然后使用 Javascript 传递给 iFrame Src
【发布时间】:2012-05-13 05:05:19
【问题描述】:

所以试图弄清楚如何在 Javascript 中使用 window.location 来做到这一点。我正在将用户发送到我们的网站,并附带一个带有 Google Analytics 代码的 URL,我需要将其传递给该页面上的 iframe src。我假设 Javascript 可以做到这一点(注意 - 我不能使用 PHP)...

这就是我想做的:

我会将用户发送到包含所有活动数据的页面。例如,用户将单击此链接: http://www.xyz.com/index.html?utm_source=Facebook&utm_campaign=Facebook+May&utm_medium=click

他们将被定向到该页面,然后该页面上有此 iFrame。 store 端的代码需要提取 utm_source、utm_campaign、utm_medium 并将这些部分包含在 IFRAME SRC 所以这一点:

<iframe height="960px" frameborder="0" scrolling="no" width="958px" src="http://www.abc.com/minis"></iframe>

现在变成:

 <iframe height="960px" frameborder="0" scrolling="no" width="958px" src="http://www.abc.com/minis?utm_source=Facebook&utm_campaign=Facebook+May&utm_medium=click"></iframe>

任何 javascript 建议将不胜感激。注意 - 我不能使用 PHP。

更新: 得到这个工作!是的,但现在我需要稍微修改一下:

所以说被点击的附加网址是这样的:

http://abc.com/index.html?apple&orange&peach

我需要 iframe src 是这样的

 http://xyz.com/minis?orange&peach

我在脚本中移动了一些东西,但现在只抓取橙色而不是其他 & 属性(桃子)。请告知是否有更好的工作方式(没有所有参数,然后根据输入的链接,一些 & 将是未定义的:

<body>

<script type="text/javascript">

$(function() {

var loc = window.location.toString(),
params = loc.split('&')[1],
params2 = loc.split('&')[2],
params3 = loc.split('&')[3],
params4 = loc.split('&')[4],
params5 = loc.split('&')[5],
params6 = loc.split('&')[6],
  iframe = document.getElementById('myIframe');
alert(iframe.src); 
iframe.src = iframe.src + '?' + params + '&' + params2 + '&' + params3 + '&' + params4+ '&' + params5;
alert(iframe.src); 

});
</script>
<iframe id="myIframe" src="http://www.xyz.com/minis"></iframe>

</body>

【问题讨论】:

  • 使用 jquery 获取参数,然后动态插入你想要的任何新 iframe。简单
  • 我的 iframe html 代码中包含一个表单,如何将 URL 参数传递给 iframe 表单操作?提前致谢

标签: javascript iframe google-analytics query-string window.location


【解决方案1】:

这个小sn-p应该做的,在这里你所要做的就是抓住后面的那个位吗?作为字符串并将其附加到 iframe 源。

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

iframe.src = iframe.src + '?' + params;​​​​​​​​​​​​​​​​

【讨论】:

  • 所以我把这里放在一起,但它不能正常工作。我承认,Javascript 不是我的强项。 jsfiddle.net/GLm5f
  • 你弄错了 id,你错过了 JS 中的大写 I,它是 myIframe,而不是 myiframe - 我的错误应该只是使用 foo 没有混淆。
  • hmmm...更改为 ID 而不是 name 并更改了 myIframe,但我仍然没有看到它。一旦我输入附加代码,它会显示在视图源中吗?所以如果我进入那个附加的谷歌分析 URL,iframe src 的视图源应该有附加的标签?
  • 它在小提琴上不起作用,window.location 中没有参数,而且您在左侧面板上选择了 mootools 作为库。 jsfiddle.net/GLm5f/2 检查它抓取它们的日志,尝试正确,因为 iframe 不会在小提琴上加载外部内容。
  • 我知道它在 jfiddle 中不起作用,但是当使用附加的 url(本地)时,我无法让它在本地工作。
【解决方案2】:

只需使用window.location.search

const iframe = document.getElementById('frame');
iframe.src = iframe.src + window.location.search;​​​​​​​​​​​​​​​​

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2017-03-02
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多