我有一个网页,上面有成千上万页,随着技术和设备的进步,各种各样的东西都会出错(www.toilette-humor.com)。我需要在每个页面上添加一个链接,允许用户“报告问题”。所以我需要捕获以下信息并将其发送给我:
如果可能的话......
我在这里找到了一些代码来回答捕获URL并将其放在电子邮件正文中的第一个问题,我发现了一些用于捕获浏览器和版本的其他代码,但该代码不会将其添加到一封电邮。
我完全不知道如何编写Javascript。所以我问你们所有人,我如何结合这两个脚本,或者是否有更好的解决方案。
脚本一(捕获URL并将其添加到电子邮件正文中),请访问:How to write in 'mailto' body link to current page
<head>
<script>
function SendLinkByMail(href) {
var subject= "Report a Problem";
var body = "There is a problem with this webpage:\r\n\r\n<";
body += window.location.href;
body += ">";
var uri = "mailto:?subject=";
uri += encodeURIComponent(subject);
uri += "&body=";
uri += encodeURIComponent(body);
window.location.href = uri;
}
</script>
</head>
<body>
<p><a href="javascript:(function()%7BSendLinkByMail()%3B%7D)()%3B">Email link to this page</a></p>
</body>
脚本二(捕获浏览器和版本)在这里找到:How can you detect the version of a browser?
<script>
navigator.sayswho= (function(){
var ua= navigator.userAgent, tem,
M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i) || [];
if(/trident/i.test(M[1])){
tem= /\brv[ :]+(\d+(\.\d+)?)/g.exec(ua) || [];
return 'IE '+(tem[1] || '');
}
M= M[2]? [M[1], M[2]]:[navigator.appName, navigator.appVersion, '-?'];
if((tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
return M.join(' ');
})();
</script>
提前感谢大家的时间和知识。
答案 0 :(得分:0)
作为一个FYI,您不应该使用javascript链接,但我们会在一秒钟内处理。
如果要将userAgent添加到正文中,可以执行以下操作:
function SendLinkByMail(href) {
var subject= "Report a Problem";
var body = "There is a problem with this webpage:\r\n\r\n<";
body += window.location.href;
body += ">";
body += navigator.userAgent;
var uri = "mailto:?subject=";
uri += encodeURIComponent(subject);
uri += "&body=";
uri += encodeURIComponent(body);
window.location.href = uri;
}
如果您想使用那个奇怪的功能,您可以将navigator.userAgent
行更改为navigator.sayswho()
。
此外,您应该使用事件监听器附加操作:
<body>
<p class="send-email">Email link to this page</p>
<script>
var send = document.getElementsByClassName('send-email')[0];
send.attachEvent? send.attachEvent('click', SendLinkByMail) : send.addEventListener('click', SendLinkByMail);
</script>
</body>
但这仍然是发送电子邮件的一种泄密方式,因为如果用户使用网络邮件客户端mailto:
链接,如果没有用户的额外设置工作,则不太可能工作。