我使用的应用程序创建了自己的协议,就像 MS 为其 MSN 客户端所做的那样msnim:[email protected] /cdn-cgi/l/email-protection
但是,我需要创建一个 PHP 或 javascript(或组合)来尽快向协议发送 3 个请求。我也想要,如果最终结果是www.test.com/send.php
用户链接<a href='www.test.com/send.php'>
不会像这样做那样弹出或重定向到页面
<?php header('Location: msnim:[email protected] /cdn-cgi/l/email-protection'); ?>
用户单击 href 时不会创建新页面或重定向
这是我的概念证明的 JQUERY 和 JSBin
http://jsbin.com/etubas/11/ http://jsbin.com/etubas/11/
$(document).ready(function(){
$("a#click_me").click(function(){
setTimeout(function(){
console.log('test ran');
window.location = 'mailto:[email protected] /cdn-cgi/l/email-protection';
}, 100);
setTimeout(function(){
console.log('new ran');
window.location = 'mailto:[email protected] /cdn-cgi/l/email-protection';
}, 200);
});
});
这似乎适用于 IE9,据我所知,IE8 也可以。 Firefox 10 似乎也可以,但 chrome 17 只处理第一封电子邮件。
编辑 1:使用 MSN 而不是 AIM 链接进行更新,以便更通用地进行测试,并包含 jquery 示例和 JSbin
编辑 2:更新为 mailto 链接
以下 HTML/JavaScript 代码将观察点击<a id="click_me">
并为 URL 创建两个新的 iFrame,这可以触发您创建的自定义 URI 方案:
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
var imURL = 'http://josh.gitlin.name/9472703.php?id='; // Change this to your URL
function openIM(who) {
var iFrame = '<iframe src="'+imURL+who+'"></iframe>';
$('div#imLinks').append(iFrame);
}
$("a#click_me").click(function(e){
e.preventDefault();
setTimeout(function(){
openIM('1');
}, 100);
setTimeout(function(){
openIM('2');
}, 200);
});
});
</script>
</head>
<body>
<p>Some content here</p>
<p><a href="#" id="click_me">Click Me!</a></p>
<div id="imLinks"></div>
</body>
</html>
以下 PHP 代码将在这些 iFrame 中显示:
<?php
$screenname = '';
switch($_REQUEST['id']) {
case '1': $screenname = 'firstPerson'; break;
case '2': $screenname = 'secondPerson'; break;
default: $screenname = 'otherPerson'; break;
}
echo <<<END_OF_HTML
<html>
<head>
<meta http-equiv="refresh" content="0;url=aim:goim?screenname=$screenname">
</head>
</html>
END_OF_HTML;
在 Safari 和 Chrome 下测试 http://jsfiddle.net/yKGGU/,单击链接时将打开多个 IM 窗口。显然可以调整到您满意的程度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)