我有链接谷歌adword:
当访问者点击上面的链接导航到mysite。然后他提交了一个Marketo表格(我的网站上的登陆页面的非Marketo表格)。 我按照这篇文章在我的网站上创建Mkto表单:http://community.marketo.com/MarketoResource?id=kA650000000GsPJCA0以确保在提交时它将从url参数中获取值。
我的问题在于:通常,此表单只是提交给服务器来处理注册。除此之外,当这个形式被提交时,我还需要它提交给Marketo进行跟踪。这是一个原因,Marketo表格将通过iframe提交。
当我提交marketo表单时,它将成为此iframe的目标。
所以,我需要将url参数传递给iframe,以确保在提交表单时,隐藏字段会自动从url参数中获取值。但在这个iframe上,正如你所看到的,它没有src。我曾尝试将此添加到iframe:
$("#mktoformhidden").src = window.location.href;
但效果不佳。
这里的iframe src应该是什么?
谢谢,
答案 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>