Невозможно вызвать скрипт jConfirm через код C#
Я должен вызывать функцию jConfirm (библиотека оповещений jquery) через C# программно. Я включаю библиотеку.js в главную страницу моего сайта следующим образом:
<script type="text/javascript"
src='<%# Page.ResolveClientUrl("~/Scripts/jquery-1.7.2.min.js") %>'></script>
<script type="text/javascript"
src='<%# Page.ResolveClientUrl("~/Scripts/jquery.alerts.js") %>'></script>
... и вызвать метод через C# следующим образом:
Page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "alert", @"
<script type=""text/javascript"" language=""javascript"">
jConfirm('Are you sure?', 'title', function(answer) {
if (answer)
alert('ok');
else
alert('ko');
}); return false;
</script>");
Но это не работает... если я вызываю таким же образом, например, функцию jAlert, все идет хорошо, поэтому я не думаю, что это проблема импорта.
Любое предложение?
2 ответа
Решение
Я нашел решение... это была действительно наивная причина!
<script type="text/javascript"
src='<%# Page.ResolveClientUrl("/Scripts/jquery-1.7.2.min.js") %>'></script>
<script type="text/javascript"
src='<%# Page.ResolveClientUrl("/Scripts/jquery.alerts.js") %>'></script>
Кажется, что с символом '~' в относительном пути этот скрипт не работает... без него идет нормально.
Оберните это внутри функции
Page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "alert", @"
<script type=""text/javascript"" language=""javascript"">
function FooAlert(){
jConfirm('Are you sure?', 'title', function(answer) {
if (answer)
alert('ok');
else
alert('ko');
}); return false;
}
</script>");