Mailchimp "mce-error-response" 创建文本而不是新标签
Mailchimp "mce-error-response" Creating Text Instead Of A New Tab
我正在使用如下所示的基本 mailchimp 表单
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<!-- Begin MailChimp Signup Form -->
<div id="mc_embed_signup">
<form action="http://facebook.us16.list-manage.com/subscribe/post?u=81d63ae912846f990f5307c84&id=b817e70a9e" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<h2>Subscribe to our mailing list</h2>
<div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
<div class="mc-field-group">
<label for="mce-FNAME">First Name <span class="asterisk">*</span>
</label>
<input type="text" value="" name="FNAME" class="required" id="mce-FNAME">
</div>
<div class="mc-field-group">
<label for="mce-LNAME">Last Name <span class="asterisk">*</span>
</label>
<input type="text" value="" name="LNAME" class="required" id="mce-LNAME">
</div>
<div class="mc-field-group">
<label for="mce-EMAIL">Email Address <span class="asterisk">*</span>
</label>
<input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">
</div>
<div class="mc-field-group">
<label for="mce-JOB">Job Title <span class="asterisk">*</span>
</label>
<input type="text" value="" name="JOB" class="required" id="mce-JOB">
</div>
<div class="mc-field-group">
<label for="mce-INDUSTRY">Industry <span class="asterisk">*</span>
</label>
<input type="text" value="" name="INDUSTRY" class="required" id="mce-INDUSTRY">
</div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_81d63ae912846f990f5307c84_b817e70a9e" tabindex="-1" value=""></div>
<div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
</div>
</form>
</div>
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[0]='EMAIL';ftypes[0]='email';fnames[3]='JOB';ftypes[3]='text';fnames[4]='INDUSTRY';ftypes[4]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
<!--End mc_embed_signup-->
</body>
</html>
它与 mailchimp 一样基本.. 当我在我的浏览器中本地测试它时,它的行为符合预期,并创建了一个如下所示的新选项卡:
但是,当将完全相同的代码放在服务器上时,这个新选项卡呈现为一行文本,如下所示
有没有人注意到过这种行为?检查页面时仍然存在的错误是这个
Failed to load resource: net::ERR_FILE_NOT_FOUND
关于 "mce-error-response"
如有任何见解,我们将不胜感激。谢谢!
在本地测试代码时打开的选项卡实际上是 fallback 行为。该表单旨在直接在页面上显示验证错误,就像您在服务器上测试它时所做的那样,但由于 Failed to load resource
错误而无法在本地这样做。这是这一行的结果:
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[0]='EMAIL';ftypes[0]='email';fnames[3]='JOB';ftypes[3]='text';fnames[4]='INDUSTRY';ftypes[4]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
请注意 src
属性不包含 'http:' 或 'https:' 等协议。当没有协议时,它使用protocol of the current page。因此,具有 'file:///' 协议的本地文件将尝试定位不存在的 file:///s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js
。
该验证脚本包含使用 AJAX 提交表单的代码,正如来自 the script 的评论所示:
/**
* Grab the list subscribe url from the form action and make it work for an ajax post.
*/
因此,由于本地文件找不到脚本,它会回退到将表单提交到 action
属性中指定的 URL 的默认行为,并在新选项卡中打开如 target
属性中指定。
我正在使用如下所示的基本 mailchimp 表单
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<!-- Begin MailChimp Signup Form -->
<div id="mc_embed_signup">
<form action="http://facebook.us16.list-manage.com/subscribe/post?u=81d63ae912846f990f5307c84&id=b817e70a9e" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<h2>Subscribe to our mailing list</h2>
<div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
<div class="mc-field-group">
<label for="mce-FNAME">First Name <span class="asterisk">*</span>
</label>
<input type="text" value="" name="FNAME" class="required" id="mce-FNAME">
</div>
<div class="mc-field-group">
<label for="mce-LNAME">Last Name <span class="asterisk">*</span>
</label>
<input type="text" value="" name="LNAME" class="required" id="mce-LNAME">
</div>
<div class="mc-field-group">
<label for="mce-EMAIL">Email Address <span class="asterisk">*</span>
</label>
<input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL">
</div>
<div class="mc-field-group">
<label for="mce-JOB">Job Title <span class="asterisk">*</span>
</label>
<input type="text" value="" name="JOB" class="required" id="mce-JOB">
</div>
<div class="mc-field-group">
<label for="mce-INDUSTRY">Industry <span class="asterisk">*</span>
</label>
<input type="text" value="" name="INDUSTRY" class="required" id="mce-INDUSTRY">
</div>
<div id="mce-responses" class="clear">
<div class="response" id="mce-error-response" style="display:none"></div>
<div class="response" id="mce-success-response" style="display:none"></div>
</div> <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_81d63ae912846f990f5307c84_b817e70a9e" tabindex="-1" value=""></div>
<div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
</div>
</form>
</div>
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[0]='EMAIL';ftypes[0]='email';fnames[3]='JOB';ftypes[3]='text';fnames[4]='INDUSTRY';ftypes[4]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
<!--End mc_embed_signup-->
</body>
</html>
它与 mailchimp 一样基本.. 当我在我的浏览器中本地测试它时,它的行为符合预期,并创建了一个如下所示的新选项卡:
但是,当将完全相同的代码放在服务器上时,这个新选项卡呈现为一行文本,如下所示
有没有人注意到过这种行为?检查页面时仍然存在的错误是这个
Failed to load resource: net::ERR_FILE_NOT_FOUND
关于 "mce-error-response"
如有任何见解,我们将不胜感激。谢谢!
在本地测试代码时打开的选项卡实际上是 fallback 行为。该表单旨在直接在页面上显示验证错误,就像您在服务器上测试它时所做的那样,但由于 Failed to load resource
错误而无法在本地这样做。这是这一行的结果:
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';fnames[0]='EMAIL';ftypes[0]='email';fnames[3]='JOB';ftypes[3]='text';fnames[4]='INDUSTRY';ftypes[4]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
请注意 src
属性不包含 'http:' 或 'https:' 等协议。当没有协议时,它使用protocol of the current page。因此,具有 'file:///' 协议的本地文件将尝试定位不存在的 file:///s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js
。
该验证脚本包含使用 AJAX 提交表单的代码,正如来自 the script 的评论所示:
/**
* Grab the list subscribe url from the form action and make it work for an ajax post.
*/
因此,由于本地文件找不到脚本,它会回退到将表单提交到 action
属性中指定的 URL 的默认行为,并在新选项卡中打开如 target
属性中指定。