Javascript onclick按钮需要在父窗口中打开
我们在我们的营销自动化(第三方)软件上有一个表单,它在iframe中的一个微型站点上调用。。。但是,它当前正在打开iframe中的链接,而不是父窗口。。。我想我知道如何修复它,但我想在我把它交给营销公司之前,与你们再次确认一下,Javascript onclick按钮需要在父窗口中打开,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我们在我们的营销自动化(第三方)软件上有一个表单,它在iframe中的一个微型站点上调用。。。但是,它当前正在打开iframe中的链接,而不是父窗口。。。我想我知道如何修复它,但我想在我把它交给营销公司之前,与你们再次确认一下,onclick代码是否有效 我正在使用以下代码: <style> body { background: #fff; color:#000; font-family: ‘open sans’, sans-serif; } input[type=text], in
onclick
代码是否有效
我正在使用以下代码:
<style>
body {
background: #fff;
color:#000;
font-family: ‘open sans’, sans-serif;
}
input[type=text], input[type=button] {
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-khtml-border-radius: 10px;
border-radius: 5px;
height: 40px;
border: 1px solid #f1f1f1;
}
input[type=button] {
background-color: #F04D1D;
height: 45px;
font-weight: bold;
color: #FFF;
font-size: 16px;
}
</style>
<table style="width: 300px; background-color: rgb(255, 255, 255);">
<tbody>
<tr>
<td style="text-align: center;"><font color="#f04d1d"><strong><span style="font-family: '‘open sans’', sans-serif, ';'; font-size: 24px;">GET YOUR CODE </span></strong></font></td>
</tr>
<tr>
<td><span style="color: rgb(242, 242, 242);"> </span></td>
</tr>
<tr>
<td><br>
</td>
</tr>
<tr>
<td>
<table>
<tbody>
<tr>
<td>First Name* </td>
<td><span style="color: rgb(0, 0, 0);">Last Name*</span></td>
</tr>
<tr>
<td><input name="First Name" id="CaptureControl_5_" type="text" value=""></td>
<td><input name="Last Name" id="CaptureControl_6_" type="text" value=""></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td><br>
</td>
</tr>
<tr>
<td><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">Company Name*</span></td>
</tr>
<tr>
<td><input name="Company Name" id="CaptureControl_3_" type="text" value="" style="width: 300px;"></td>
</tr>
<tr>
<td><br>
</td>
</tr>
<tr>
<td><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">Your Email*</span></td>
</tr>
<tr>
<td><input name="Email Address" id="CaptureControl_4_" type="text" value="" style="width: 300px;"><br>
</td>
</tr>
<tr>
<td><span style="color: rgb(242, 242, 242);"> </span></td>
</tr>
<tr>
<td><input id="CaptureControlButton_6_" type="button" value="Send" target="_parent" onclick="try{CaptureFormData(0);}catch(e){}" style="width: 300px;"><br>
<div id="errorMessage" style="width:135;height:10;font-family:Verdana;font-size:8pt;color:red;">Error Message Area</div>
<div id="successMessage" style="width:135;height:10;font-family:Verdana;font-size:8pt;color:#000000;">Success Message Area</div>
</td>
</tr>
<tr>
<td><span style="color: rgb(0, 0, 0); font-size: 10px;"><em>*Required field</em></span></td>
</tr>
</tbody>
</table>
<br>
<br>
需要包含以下内容:
onclick="parent.window.open(try{CaptureFormData(0);}catch(e){})"
这能解决我的问题吗
只需添加-表单的脚本如下所示:
<script>try
{
var lastSubmission = null;
var ContactId = 0; var _wow;
var CaptureId = 12;
var PageId = 0;
var EmailId = 0;
var CampaignName = '';
var IsNewContact = false;
var IsTest = false;
var IsUserValid;
var gatorLeadsTrackingOptions = 0;
}catch(e){}
errorMessage.innerHTML ='';
successMessage.innerHTML ='';
function GatorTrim(x) { return x.replace(/^\s+|\s+$/gm,'');};function CaptureFormData()
{
if(lastSubmission != null){
secondsSinceLastSubmission = (new Date().getTime() - lastSubmission) / 1000
if(secondsSinceLastSubmission < 1) {
return;
}
}
var Value;
var CheckSelection = false;
var result;
var ButtonId = 6;
var submissionData = {
captureId: CaptureId,
buttonId: ButtonId,
pageId: PageId,
emailId: EmailId,
campaignName: CampaignName,
contactId: ContactId,
isTest: IsTest,
sendNotificationEmail: false,
passGatorLeadsTrackingDataInRedirectUrl: true,
onlyOneEntry: false,
displayName: 'Volo Not got a code',
emailAddress: '',
values: [],
gatorLeadsTrackingOptions: gatorLeadsTrackingOptions
};
document.getElementById('CaptureControlButton_6_').disabled = true;
document.getElementById('CaptureControlButton_6_').value = 'Submitting, please wait';
setTimeout(function() {try{errorMessage.innerHTML = '';
successMessage.innerHTML = '';
Value = getObject('CaptureControl_4_').value;
if(Value==''){errorMessage.innerHTML += 'The email address field is missing<br>';
document.getElementById('CaptureControlButton_6_').disabled = false;
document.getElementById('CaptureControlButton_6_').value = 'Send';
}
Value = getObject('CaptureControl_5_').value;
if(Value==''){errorMessage.innerHTML += 'Mandatory fields missing<br>';
document.getElementById('CaptureControlButton_6_').disabled = false;
document.getElementById('CaptureControlButton_6_').value = 'Send';
}
Value = getObject('CaptureControl_3_').value;
if(Value==''){errorMessage.innerHTML += 'The field name company name is missing<br>';
document.getElementById('CaptureControlButton_6_').disabled = false;
document.getElementById('CaptureControlButton_6_').value = 'Send';
}
if(errorMessage.innerHTML != ''){return;}
Value = GatorTrim(getObject('CaptureControl_4_').value);
submissionData.emailAddress = Value;
Value = GatorTrim(getObject('CaptureControl_5_').value);
if (Value != undefined) {submissionData.values.push({controlId: 5, value: Value });
}
Value = GatorTrim(getObject('CaptureControl_6_').value);
if (Value != undefined) {submissionData.values.push({controlId: 6, value: Value });
}
Value = GatorTrim(getObject('CaptureControl_3_').value);
if (Value != undefined) {submissionData.values.push({controlId: 3, value: Value });
}
var result = WebCapture.Submit(JSON.stringify(submissionData));
var response = JSON.parse(result.value);
if(response.success==false){errorMessage.innerHTML = 'You have already submitted.';
document.getElementById('CaptureControlButton_6_').disabled = false;
document.getElementById('CaptureControlButton_6_').value = 'Send';
return;}
trackingData = response.trackingData;
document.getElementById('CaptureControlButton_6_').disabled = false;
document.getElementById('CaptureControlButton_6_').value = 'Send';
successMessage.innerHTML = 'Thank you for submitting ';
if(typeof _wow != 'undefined' && response.trackWowSubmit){
trackUrlInWow(response.wowUrl);}
var submitRedirectUrl = 'http://takeflight.volocommerce.com/multichannel-selling/'
if(submitRedirectUrl.indexOf('?') == -1){
submitRedirectUrl = submitRedirectUrl + '?';
}else{
submitRedirectUrl = submitRedirectUrl + '&';
}
submitRedirectUrl += 'gator_td=' + trackingData;
window.location.href=submitRedirectUrl;
}catch(e){if(IsTest) { alert(e.message); } else { alert('An error has occurred submitting the data. Please try again.'); }
document.getElementById('CaptureControlButton_6_').disabled = false;
document.getElementById('CaptureControlButton_6_').value = 'Send';
}
lastSubmission = new Date().getTime();
}, 100);
}</script>
试试看
{
var lastSubmission=null;
var ContactId=0;var\u wow;
var CaptureId=12;
var-PageId=0;
var-EmailId=0;
变量名称=“”;
var IsNewContact=false;
var IsTest=false;
var为uservalid;
var-LeadStrackingOptions=0;
}捕获(e){}
errorMessage.innerHTML='';
successMessage.innerHTML='';
函数{返回x.replace(/^\s+|\s+$/gm,');};函数CaptureFormData()
{
if(lastSubmission!=null){
secondsSinceLastSubmission=(新日期().getTime()-lastSubmission)/1000
如果(secondsSinceLastSubmission<1){
返回;
}
}
var值;
var CheckSelection=false;
var结果;
var ButtonId=6;
var提交数据={
captureId:captureId,
buttonId:buttonId,
pageId:pageId,
emailId:emailId,
活动名称:活动名称,
contactId:contactId,
isTest:isTest,
sendNotificationEmail:false,
passGatorLeadsTrackingDataInRedirectUrl:true,
只有一个答案:错,
displayName:“Volo未获得代码”,
电子邮件地址:“”,
值:[],
gatorLeadsTrackingOptions:gatorLeadsTrackingOptions
};
document.getElementById('CaptureControlButton_6_6')。disabled=true;
document.getElementById('CaptureControlButton_6_6')。值='正在提交,请稍候';
setTimeout(函数(){try{errorMessage.innerHTML='';
successMessage.innerHTML='';
值=getObject('CaptureControl_u4')。值;
如果(Value=''){errorMessage.innerHTML+='电子邮件地址字段丢失
';
document.getElementById('CaptureControlButton_6_6')。disabled=false;
document.getElementById('CaptureControlButton_6_6')。值='Send';
}
Value=getObject('CaptureControl_u5')。值;
if(Value=''){errorMessage.innerHTML+='缺少必填字段
';
document.getElementById('CaptureControlButton_6_6')。disabled=false;
document.getElementById('CaptureControlButton_6_6')。值='Send';
}
Value=getObject('CaptureControl_u3')。值;
如果(Value=''){errorMessage.innerHTML+='缺少字段名company name
';
document.getElementById('CaptureControlButton_6_6')。disabled=false;
document.getElementById('CaptureControlButton_6_6')。值='Send';
}
如果(errorMessage.innerHTML!=''{return;}
值=GatorTrim(getObject('CaptureControl_4')。值);
submissionData.emailAddress=值;
值=GatorTrim(getObject('CaptureControl_5')。值);
if(Value!=未定义){submissionData.values.push({controlId:5,Value:Value});
}
值=GatorTrim(getObject('CaptureControl_6')。值);
if(Value!=未定义){submissionData.values.push({controlId:6,Value:Value});
}
值=GatorTrim(getObject('CaptureControl_3_')。值);
if(Value!=未定义){submissionData.values.push({controlId:3,Value:Value});
}
var result=WebCapture.Submit(JSON.stringify(submissionData));
var response=JSON.parse(result.value);
如果(response.success==false){errorMessage.innerHTML='您已经提交了';
document.getElementById('CaptureControlButton_6_6')。disabled=false;
document.getElementById('CaptureControlButton_6_6')。值='Send';
返回;}
trackingData=response.trackingData;
document.getElementById('CaptureControlButton_6_6')。disabled=false;
document.getElementById('CaptureControlButton_6_6')。值='Send';
successMessage.innerHTML='感谢您提交';
if(typeof_wow!=“undefined”&&response.trackWowSubmit){
trackUrlInWow(response.wowUrl);}
var submitRedirectUrl=http://takeflight.volocommerce.com/multichannel-selling/'
if(submitRedirectUrl.indexOf('?')=-1){
submitRedirectUrl=submitRedirectUrl+'?';
}否则{
submitRedirectUrl=submitRedirectUrl+'&';
}
submitRedirectUrl+='gator_td='+跟踪数据;
window.location.href=submitRedirectUrl;
}catch(e){if(IsTest){alert(e.message);}else{alert('提交数据时出错。请重试。');}
document.getElementById('CaptureControlButton_6_6')。disabled=false;
document.getElementById('CaptureControlButton_6_6')。值='Send';
}
lastSubmission=新日期().getTime();
}, 100);
}
位置的实际变化发生在javascript内部,基本上发生在最后:
window.location.href=submitRedirectUrl;
要在最上面的框架(即封套页)中执行此操作,请将其更改为
window.top.location.href = submitRedirectUrl;
请注意,只有当父页面和iframe中的页面都来自同一个域时,这才有效,因为我通过将表单重定向到同一域上的php脚本来解决这个问题,该脚本然后转发到要在父窗口中打开的页面(在同一域上) 您是否尝试过按照答案添加
base
。。。如果没有好的缩进,很难阅读,但我会相应地更改我的答案谢谢先生:)这是一个很大的帮助!
window.location.href=submitRedirectUrl;
window.top.location.href = submitRedirectUrl;