我有一个链接按钮,用于从页面内容构建邮件。从 javascript 启动它而不打开空白窗口或干扰调用它的窗口的最佳方法是什么?
function Email()
{
var sMailTo = "mailto:";
var sBody = "";
var alSelectedCheckboxes = new Array();
$("input:checkbox[CheckBoxType=Email]:checked").each(function()
{
alSelectedCheckboxes.push($(this).val());
});
if (alSelectedCheckboxes.length > 0)
{
for (var i=0; i<alSelectedCheckboxes.length; i++)
{
sBody += alSelectedCheckboxes[i];
sBody += "\n";
}
sMailTo += escape("<Insert Recipients Here>") +"?subject=" +escape("<Insert Subject Here>") +"&body=" +escape(sBody);
window.location.href = sMailTo;
}
else
{
alert("Please select some results");
}
}
简单的功能如上。 window.location.href 无法正常工作,除非它是 Firefox/Chrome(它会在 IE8 中重绘页面)。我也尝试过 window.open(sMailTo, "_self") 但在 IE8 中这又破坏了调用它的页面。
我确信这是一个愚蠢的问题......:-)
Thanks
我觉得一点也不傻!这是一个好的开始。接下来我要尝试的只是在 jquery 中创建一个实际的链接对象,将其附加到正文,然后单击()它。
//window.location.href = sMailTo;
$('<a href="' + sMailTo + '">click</a>').appendTo('body').click().remove();
只要您使用的 escape() 函数去掉所有引号并正确编码 html,就应该可以工作。
但我不得不说,这可能很难得到just正确的。如果仍然不起作用,我建议在服务器端执行此操作,其中链接会发布所需的所有 html。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)