如何将UTM参数从URL传递到iframe?

时间:2013-12-04 04:16:07

标签: iframe parameters marketo

当我提交marketo表单时,它将成为此iframe的目标。

所以,我需要将url参数传递给iframe,以确保在提交表单时,隐藏字段会自动从url参数中获取值。但在这个iframe上,正如你所看到的,它没有src。我曾尝试将此添加到iframe:

$("#mktoformhidden").src = window.location.href;

但效果不佳。

这里的iframe src应该是什么?

谢谢,

3 个答案:

答案 0 :(得分:1)

我的猜测是iframe不是最好的解决方案。 iframe可以创建各种跨站点脚本和基于权限的问题。

为什么不在Marketo中使用新的表单功能,这样您就可以将表单放在登录页面上或嵌入到您的站点上(它们带有嵌入源代码)。

此外,munchkin跟踪代码自动抓取"查询"参数,以便您可以在智能列表或报告中使用这些参数。

答案 1 :(得分:1)

sahutchi said一样,将实际的Marketo 表单嵌入您的网站可能是最佳选择。我选择了iframe方法让Marketo根据mkt_tok自动填写字段。这可能是使用Marketo表格的,但我无法在一两个月前弄明白。

以下是您可以将Marketo表单与您的网站集成的方式的正确概述:http://www.elixiter.com/marketo-landing-page-and-form-hosting-options/

如果坚持以iframe的方式执行此操作,请按照我的设置将查询字符串参数传递给嵌入式iframe:

这是http://yourdomain.com/my-marketo-page

<div class="lazy-iframe" data-src="//pages.yourdomain.com/MyMarketoPage.html" style="width: 960px; height: 1000px;">
</div>

在某些共享库中(但你可以将它放在同一页面上,并稍微简化一下):

<script>
$(function() {
  var $lazyIframe = $('.lazy-iframe');
  if ($lazyIframe.length) {
    var src = $lazyIframe.attr('data-src');
    if (src) {
      var $iframe = $('<iframe src="' + src + location.search + '"></iframe>');
      $iframe.attr({
        scrolling: 'no',
        frameborder: 0
      });
      $lazyIframe.replaceWith($iframe);
    }
  }
});
</script>

鉴于pages.yourdomain.com是您的Marketo域CNAME

在我的电子邮件中,我只是链接到http://yourdomain.com/my-marketo-page,而Marketo会自动将该电子邮件收件人的mkt_tok添加到该网址的末尾(成为http://yourdomain.com/my-marketo-page?mkt_tok=BLAHBLAHBLAH)。然后使用data-src URL和附加的所有参数构建iframe,并且没有滚动或frameborder(由您决定)。

答案 2 :(得分:0)

我会做这样的事情!只需将“URL HERE”替换为您的iframe网址,当然也可以更新您在BOTH loactions中所需的大小。

<noscript>
 <iframe src="YOUR URL HERE" width="100%" height="500" type="text/html" frameborder="0" allowTransparency="true" style="border: 0"></iframe>
</noscript>

<script type="text/javascript">
 var iframeurl = 'YOUR URL HERE';
 var params = window.location.search;
 var thisScript = document.scripts[document.scripts.length - 1];
 var iframe = document.createElement('iframe');

 iframe.setAttribute('src', iframeurl + params);
 iframe.setAttribute('width', '100%');
 iframe.setAttribute('height', 500);
 iframe.setAttribute('type', 'text/html');
 iframe.setAttribute('frameborder', 0);
 iframe.setAttribute('allowTransparency', 'true');
 iframe.style.border = '0';

 thisScript.parentElement.replaceChild(iframe, thisScript);
</script>