返回列表 發帖

請問js開新視窗傳遞網址時,有'%keyword%'符號時怎麼避免錯誤

本帖最後由 ironman 於 2010-5-24 18:28 編輯

站長您好
小弟在按鈕事件將目標網址及夾帶的參數傳送到自訂的開新視窗函數中,如下:
onClick="centerWindow('NewWindows.asp?QueryStr=<% = QueryStr %>','MyNewWindow','100','100','')"/>

function centerWindow(theURL, winName, width, height, features) {
    var agree=confirm("確定要開啟新視窗嗎?\n請注意瀏覽器的封鎖彈出視窗有時會阻擋");
    var window_width = width;
    var window_height = height;
    var edfeatures= features;
    var window_top = (screen.height-window_height)/2;
    var window_left = (screen.width-window_width)/2;
        if (agree) {
        newWindow=window.open(''+ theURL + '',''+ winName + '','width=' + window_width + ',height=' + window_height + ',top=' + window_top + ',left=' + window_left + ',features=' + edfeatures + '');
        newWindow.focus();
                return true ;
        } else {
                return false ;
        }
}
但發現因為夾帶的QueryStr 是一組SQL 的Select Like語法
所以字串裡面有夾帶一組單引號與%符號:'%keyword%'
因此一直被這個confirm視窗判斷為有值未事先定義
請問該如何不讓這個視窗判斷錯誤
而又能將正確的值夾帶到新視窗呢

有試過將字串用URL編碼或加 \n 似乎都沒效耶


感謝

應該是單引號產生的問題吧,你可以使用跳脫字元解決:
QueryStr =  Replace(QueryStr, "'", "\\'");
To infinity and beyond!

TOP

回復 2# wmh

謝謝版大回覆
後來我用<%= Server.URLEncode(QueryStr)%>就OK了

TOP

返回列表 回復 發帖