Вызов функции Javascript из кода за страницей - PullRequest
3 голосов
/ 31 декабря 2011

У меня есть скрипт, который я хочу, чтобы всплывающее окно после 5 просмотров страницы. Сценарий java отлично работает на странице default.aspx со ссылкой для его вызова. Но я хочу запустить его со своей страницы default.aspx.cs после того, как мой счетчик сеансов достигнет 5. Как я могу это сделать? Возможно ли это?

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 page

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

            }

Ответы [ 3 ]

4 голосов
/ 31 декабря 2011

Вы можете вывести javascript в LiteralControl из своего кода:

.aspx:

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

Код позади:

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

При таком отображении выходной скрипт вызовет функцию - убедитесь, что она ниже на странице, чем та, где была определена функция, чтобы убедиться, что она существует.

2 голосов
/ 01 января 2012

В ASP.Net вы можете делать следующее:

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

Если вам нужен больший контроль над размещением сценариев, у @Oded есть лучший подход - поскольку попытка вызова функции, которая не была определена, не является хорошей идеей ...

0 голосов
/ 31 декабря 2011

Вы не можете вызывать функции javascript напрямую из C #.Однако вы можете передать <script> браузеру, который выполняет функцию.

response.Write("<script>popWin(something);</script>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...