簡體   English   中英

javascript window.aspx中打開

[英]javascript window.open in aspx

我后面有vb.net的aspx頁面。 我需要使用javascript在頁面加載時打開一個新窗口。 我還從上一頁發送查詢字符串(www.mysite.com/default.aspx?dest=register.aspx)。 我僅需在URL有查詢字串的情況下,才需要JavaScript來解析查詢字串並打開新窗口。 請指教

請注意,除非您在知道瀏覽器允許的位置運行此命令,否則這將無法工作,因為window.open調用將被瀏覽器的popup-blocker阻止。

要打開窗口而不被阻塞,調用必須源自顯式用戶事件(即“單擊”)。

為了解析URL,使用某種JavaScript庫很方便,例如prototype ;)

該代碼看起來像

var str = "http://www.mysite.com/default.aspx?dest=register.aspx";
var obj = str.parseQuery();

if(obj.dest) window.open(obj.dest);

要使用原型,您所要做的就是在此處下載javascript文件並將其包含在腳本標簽中的頁面中;

您可以將代碼放入onload事件處理程序中,但要注意stefpet指出的安全限制。 如果您只想重定向到頁面,則可以在后面的代碼中進行。 如果您真的想要加載它,那么您需要

ClientScript.RegisterClientScriptBlock(GetType(), "load_redirect", your_js_code , false);

用實際代碼替換your_js_code的位置。

您是否正在尋找查詢字符串“ dest”?

然后這樣做:

if(location.href.indexOf('?dest=') >= 0)
    window.open('myurl', '', '');

您是否要使用查詢字符串的值來確定要打開哪個頁面? 在這種情況下,最好使用一些服務器端代碼生成腳本:

window.open('<%=Request.QueryString("dest")%>', '', '');

您也可以使用全JavaScript。 有一些庫可以幫助您解析查詢字符串,但是快速而骯臟的方法是:

if(location.href.indexOf('?dest=') >= 0) {
    var dest = location.href.substring(location.href.indexOf('?dest=')+6);
    window.open(dest, '', '');
}

這里的術語“快速而骯臟”。 注意,我只在尋找?dest ,即以“ dest”作為第一個查詢字符串的URL。 我也不檢查值中是否有“&”號,因此它甚至要求“目標”是唯一的查詢字符串。 您可以使它更加可靠,但可以做得很詳盡,但是正如我所說,a)您應該使用服務器端代碼生成此腳本,b)如果您真的不想使用a,則應該使用現有的解析器庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM