I don't know enough about javascript to figure out why the line in this script that begins "window.open..." throw an invalid argument error in IE7-8-9b. Works fine in Firefox and Webkit.
(The script is invoked with an onclick="share.fb()"
in a html link and pops up a new browser window to share at FB and Twitter).
var开发者_Python百科 share = {
fb:function(title,url) {
this.share('http://www.facebook.com/sharer.php?u=##URL##&t=##TITLE##',title,url);
},
tw:function(title,url) {
this.share('http://twitter.com/home?status=##URL##+##TITLE##',title,url);
},
share:function(tpl,title,url) {
if(!url) url = encodeURIComponent(window.location);
if(!title) title = encodeURIComponent(document.title);
tpl = tpl.replace("##URL##",url);
tpl = tpl.replace("##TITLE##",title);
window.open(tpl,"sharewindow"+tpl.substr(6,15),"width=640,height=480");
}
};
IE disallows spaces and other special characters in window name (the second argument). You need to remove them before passing as argument.
Replace
"sharewindow"+tpl.substr(6,15)
by
"sharewindow"+tpl.substr(6,15).replace(/\W*/g, '')
so that you end up with
window.open(tpl,"sharewindow"+tpl.substr(6,15).replace(/\W*/g, ''),"width=640,height=480");
(that's basically a regex replacement which says "replace every sequence of non-aplhabetic character by nothing")
Live demo here (configure if necessary your popup blocker)
精彩评论