вызовите JavaScript - PullRequest
       30

вызовите JavaScript

0 голосов
/ 06 октября 2009

Я пытаюсь показать пользователю сообщение с javascript. У меня есть кнопка, и эта кнопка делает что-то вроде

Label1.Text = "Hello world";
//javascript code

Во-первых, label1.text будет «Hello world» после того, как пользователь увидит сообщение.

спасибо.

Ответы [ 5 ]

2 голосов
/ 06 октября 2009

C # и код JavaScript запускаются на разных таймфреймах и на разных компьютерах. Ваш серверный код запускается и генерирует HTML, который затем отправляется в браузер. Затем браузер запускает код JavaScript.

Следовательно, вы не можете делать такие вещи, как установка текста метки в C #, а затем запустить javascript. Вы не можете «вызвать» JavaScript из C # или C # из JavaScript.

Тем не менее, вы можете установить текст метки (который отображается как промежуток в браузере) в javascript, а затем делать другие вещи, которые вы хотели сделать.

1 голос
/ 06 октября 2009

Не совсем точно, что вы спрашиваете здесь. Я не осведомлен о метке HTML. Если вы говорите о ASP: Label, он отображается в браузере как промежуток. Чтобы установить значение в JavaScript, вы должны получить к нему доступ, используя модель документа. Ниже может помочь, если нет, попробуйте уточнить ваш вопрос.

<HTML>

<head>
<script>
function changeText()
{
   document.getElementById('spnSayHello').innerHTML = 'Hello World';
}
</script>
</head>

<body>
<span id='spnSayHello' onclick="changeText();">clickme</span>
</body>
</HTML>

ОБНОВЛЕНИЕ: Если я правильно вас понимаю, вы пытаетесь отобразить на странице javascript с помощью кода на C #? Вы можете сделать это несколькими способами. Обычно я использую RegisterStartupScript так:

private void writeSomeJs()
{
   ClientScript.RegisterStartupScript(this.form1.getType(),"jPopUp","<script>alert('Hello World');</script>")
}
1 голос
/ 06 октября 2009

Вероятно, самый простой способ выполнить код JavaScript после того, как текст Label был установлен, был бы следующим:

Label1.Text = "Hello world" +
    @"<script type=""text/javascript"">
          alert(""Message to show."");
      </script>";

По сути, код JavaScript находится внутри текста метки. Когда браузер загружает страницу, возвращенную сервером, он обрабатывает JavaScript и показывает сообщение.

1 голос
/ 06 октября 2009

Если я вас понимаю, вам нужен обработчик событий на кнопке.

<button id="somebutton">Click me</button>
<label for="someid"></label>

Кнопка может быть любой HTML, я просто хочу показать идентификатор, на самом деле.

document.getElementById('somebutton').onclick = function() {
  document.getElementById('someid').innerHTML = 'Hello World';
  return false;
};

Вы также можете просто добавить дочерний элемент к метке, добавив текстовый узел, если хотите.

0 голосов
/ 07 октября 2009

Полагаю, это то, что вы пытаетесь, я пробовал этот код, он работает для меня.

Label1.Text = "Hello world";

Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "alert('Messages');", true);

или даже здесь вы можете вызвать функцию javascript

Label1.Text = "Hello world"; 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "click", "function();", true);
...