我正在使用Web窗体的营销人员模块安装和网站fancybox插件(该网站)上Sitecore 7.2网站上设置网关窗体正在使用fancybox版本1.3.4,并且我无法更新此版本,或者它可能会破坏正在使用此插件的网站上的其他功能)。Sitecore 7 - 使用Web窗体为营销人员弹出窗体模式
这就是表单应该如何工作的原因:用户点击页面上的链接,这会打开一个弹出窗口,其中必须填写表单才能访问下载。
到目前为止,我已经得到了一些工作,以便在页面上单击链接时,fancybox模式将打开并显示WFFM表单。
这里是jQuery的,做这样的:
jQuery.noConflict();
(function($) {
$(document).ready(function() {
// Open the gateway form into a fancybox modal
//check to see if there is a gateway form link on the page
if ($(".protected-item").length > 0) {
//if so, then we want to target the click event
$('.protected-item').click(function(event) {
event.preventDefault();
//Get the value of the href of the link since this url will contain the page with the gateway form
var url = $('.protected-item').attr('href');
//open the page with the gateway form in the fancybox modal
$.fancybox({
'autoDimensions': true,
'height': 400,
'width': 400,
'scrolling': 'no',
'href': url,
'autoScale': true,
});
});
}
});
})(jQuery);
我所做的Sitecore的是创建一个通用的网页(我称为网关形式测试页),并插入测试网关形式到它。然后,在我希望使用网关表单的页面上,我已经将一些文本(“点击此处”)链接到该网关表单测试页面。
问题是,在点击WFFM表单的提交按钮后,页面会将我发送到表单所在的网址(即domainname/OtherPages/GatewayFormTestPage.aspx),而不是只重新加载fancybox窗口并显示成功的消息或错误消息,如果不是所有的字段都被填入。
我试着设置fancybox模式的'iframe'的类型,但所做的只是渲染一个空的弹出框(没有内容显示在fancybox-内容块,或者 - 我检查了Chrome开发工具中的元素)。
有没有一种方法可以将WFFM格式封装在iframe中,这样我可以避免在单击“submit?”时转到另一个页面。我希望用户始终保持弹出窗口模式。
谢谢,我知道这可能是一个复杂的过程,我希望我可以选择一个更好的解决方案,但这是我必须与之合作。
我同意WFFM在这里不是最好的选择,但这个决定不取决于我 - 其他人做出了选择,这将是如何:\ 我确实设法让iframe工作 - 我需要从fancybox的插件中包含另一个js文件。自从计划到位后,我不想大惊小怪,而且我必须与我的工作一起工作。 虽然我将你的评论标记为答案,因为这些仍然是很好的选择 - 如果我在这个项目中有更多的发言权。 –