2011-12-31 126 views
3

我有一個腳本,我想在5次頁面瀏覽後彈出一個窗口。 java腳本可以在default.aspx頁面上正常工作,並帶有一個鏈接來調用它。但是我想在我的會話var count達到5後從我的default.aspx.cs頁面啓動它。我該怎麼做?可能嗎?從頁面代碼調用Javascript函數

的Default.aspx

<script type="text/javascript"> 
    window.name = "Register"; 
    function popWin(link) { 
     var w = window.open(link.href, link.target, 'width=500,height=600,resizable'); 
     return w ? false : true; // if popup blocker, use the default behaviour of the link 
    } 
</script> 

Default.aspx.cs頁面

if (Session["PagesViewed"].ToString() == "5") 
      { 
       //Call my Javascript function How????? 

      } 

回答

4

可以輸出的JavaScript到您的代碼後面LiteralControl

的.aspx:

<asp:Literal id="myLiteral" runat="server" /> 

後面的代碼:

myLiteral.Text = "<script type='text/javascript'>popWin('url');</script>"; 

當渲染這種方式,輸出腳本將調用函數 - 確保它在除函數定義,以確保它存在的頁面下。

+0

我試過上面的代碼,我得到這個錯誤。 Microsoft JScript運行時錯誤:'popWin'未定義 – CsharpBeginner 2011-12-31 20:28:25

+0

@CsharpBeginner將''放在腳本之後,如答案中所述 – xandercoded 2011-12-31 20:31:33

0

您不能直接從C#調用JavaScript函數。但是,您可以做的是將<script>傳遞給執行該功能的瀏覽器。

response.Write("<script>popWin(something);</script>"); 
2

在ASP.Net,你可以做到以下幾點:

Page.ClientScript.RegisterStartupScript(
    this.GetType(), 
    "openpopup", 
    "popWin('www.someurl.com');", 
    True); 

如果您需要更多的控制腳本放置@Oded有更好方法 - 如試圖調用具有功能沒有被定義是不是一個好主意...

相關問題