javascript - type - new event



IE7-8-9b에서 window.open이 잘못된 인수를 던졌습니다. (1)

나는 "window.open ..."을 시작하는이 스크립트의 줄이 IE7-8-9b에서 잘못된 인수 오류를 던지는 이유를 알아 내기 위해 javascript에 대해 충분히 알지 못합니다. Firefox와 Webkit에서 잘 작동합니다.

(이 스크립트는 HTML 링크에서 onclick="share.fb()" 와 함께 onclick="share.fb()" 되며 FB 및 Twitter에서 공유 할 새 브라우저 창이 팝업됩니다.

var 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는 창 이름에 공백과 다른 특수 문자를 허용하지 않습니다 (두 번째 인수). 인수로 전달하기 전에 제거해야합니다.

바꾸다

"sharewindow"+tpl.substr(6,15)

으로

"sharewindow"+tpl.substr(6,15).replace(/\W*/g, '')

그래서 결국

window.open(tpl,"sharewindow"+tpl.substr(6,15).replace(/\W*/g, ''),"width=640,height=480");

(그것은 기본적으로 "무의미한 성격의 모든 순서를 아무 것도 대신하여"대체하는 정규 표현식입니다)

라이브 데모 (필요한 경우 팝업 차단기 구성)





javascript-events