2009-01-12 183 views
0

我有一個動態創建的菜單,我有一個menuItemClick事件綁定在這個事件中,我想執行一個簡單的window.open腳本,使用點擊項目的url。我需要這樣做的原因是我需要設置窗口打開的參數(即沒有滾動條,沒有工具欄等)。從服務器執行一個簡單的window.open腳本

我的問題是,有沒有辦法簡單地創建一個腳本的字符串來執行,然後實際執行它?

到目前爲止,我有:

string script = "window.open('" + e.Item.NavigateUrl + "' ,'_MAIN_WINDOW','width='+ screen.width + '-60,height=' + screen.height + '-500,left=' + screen.left + '-30,top=' + screen.top + '-30,screenx=0,screeny=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no, resizable=yes')"; 

但我不知道如何再執行這個腳本。

回答

0

重寫頁面的OnPreRender事件。

裏面有你做:

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 


    foreach (MenuItem item in m1.Items) // m1 is the menu in my case :) 
    { 
    item.Target = string.Format("window.open('{0}');", item.NavigateUrl); 
    } 
} 
1

你可以把window.open(...)代碼調用onButtonClick(項目)的JavaScript函數內部,並與發出的RegisterStartupScript它()一樣bdukes建議,然後在該頁面的ASPX代碼,你可以添加一個事件處理程序像

<a id="bla" onclick="javascript:onButtonClick(this);" >Dummy item</a> 

然後當你點擊該項目,onButtonClick將與點擊的項目作爲參數調用。

相關問題