【发布时间】:2023-03-20 22:52:01
【问题描述】:
在这个问题上花费了好几个小时,但找不到一个好的解决方案,所以这里是:
我在 iframe 中有一个跟踪像素。单击按钮时,我想首先触发跟踪像素,然后提交表单。通常我会在中间有一个页面,在那里我触发一个像素并传递一个表单,但在这个项目中,我无法访问后端,也无法制作中间页面。我试图简单地将 onClick='firePixel()' 添加到按钮,假设它将提交表单并加载 iframe,但事实并非如此。我还尝试创建第二个函数并以某种方式添加回调: onClick(firePixel(submitForm)) 将 submitForm 作为回调 - 也没有运气。
P.S 另外,我尝试在表单外部(如下所示)以及表单内部设置按钮 - 不走运。
不确定这里的最佳做法是什么?我不介意 iframe 是否在后台被触发 - 用户永远不会看到它 - 它只是一个跟踪像素。
请在下面找到代码(不起作用):
<iframe id='conversioniFrame' data-src="testFrame.html"
src="about:blank" width='100px' height="100px">
<div class='panel clearfix'>
<form id="options-go-to-insurer" action="/life/buy/" method="post">
<!-- Form stuff -->
</form>
<button id="conversionButton" class="button primary expand apply-button" onclick="conversionFunction(submitForm())"><b>Apply Now</b></button>
</div>
<!-- STOP -->
<script>
function conversionFunction(callback) {
var iframe = $("#conversioniFrame");
iframe.attr("src", iframe.data("src"));
callback();
}
function submitForm() {
document.getElementById("options-go-to-insurer").submit();
}
</script>
【问题讨论】:
标签: javascript jquery html forms iframe