Где разместить внешний файл .js на странице aspx, использующей мастер-файл - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть страница aspx, которая наследуется от шаблона главной страницы. Обычно я помещаю ссылку на мой внешний файл javascript внутри элемента <head> html-страницы, но элемент <head> находится на главной странице.

Где мне разместить ссылку на мою внешнюю страницу .js?

Если я пытаюсь просто поместить тег <script> ниже элемента <%@ Page %>, я получаю сообщение об ошибке, говорящее о том, что я должен разместить теги внутри <asp:content> разделов.

Спасибо

Ответы [ 4 ]

0 голосов
/ 04 сентября 2014

Внутри вашей главной страницы <body> .. <form> .. добавьте тег asp:ScriptReference в свой asp:ScriptManager, , а не в содержимое :

<form id="form1" runat="server">
    <asp:ScriptManager ID="scripty" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/Scripts/Timer/myJsFile.js"></asp:ScriptReference>
        </Scripts>
    </asp:ScriptManager>

Если вы хотите привести его со стороны клиента, вам нужно добавить где-нибудь на вашей странице <body> или content:

<script>
    window.onload: start;
</script>

В качестве альтернативы, для каждой страницы aspx.cs, которая нуждается в этом, я использую это на стороне сервера:

Page.ClientScript.RegisterStartupScript(GetType(), "Start", "window.onload=Start;", true);

Где в моем файле JavaScript есть:

function Start() {
...
}

Совет: ScriptManager широко используется большими библиотеками Js, такими как jQuery.

В вашем javascript, если у вас установлен jQuery, вы можете вызвать любой объект ASP с ClientIDMode="Static" на главной странице с помощью $("#nameOfObject").

Я не уверен , работает ли вышеуказанный процесс со страницами содержимого, поэтому объект может находиться на главной странице.

0 голосов
/ 04 ноября 2011

Создайте заполнитель в заголовке главной страницы и добавьте скрипт к этому заполнителю на странице.

Мастер:

<head runat="server">
    <title>My Appplication</title>
    <asp:ContentPlaceHolder ID="HeaderContent" runat="server" />
</head>

Страница:

<asp:Content ID="PageHeaderContent" ContentPlaceHolderID="HeaderContent" runat="server">
    <script type="text/javascript" src="somejsfile.js"></script> 
</asp:Content>
0 голосов
/ 04 ноября 2011

Я предполагаю, что вам нужен скрипт на вашей дочерней странице, а не в шаблоне главной страницы. В этом случае вам потребуется заполнитель содержимого в элементе <head> вашей главной страницы. Затем используйте теги <asp:content> на своей дочерней странице и разместите там ссылку на ваш внешний javascript. Я не удивлюсь, если ваша главная страница уже содержит заполнитель содержимого в тегах <head>.

0 голосов
/ 04 ноября 2011

поместите его в одну из панелей контента на своей странице контента, например,

 <asp:content runat="server" id="content1" contentplaceholderid="cp1">
     <script type="text/javascript" src="somepath"></script>
    </asp:content>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...