бритвенный код во внешнем javascript рассматривается как строка - PullRequest
3 голосов
/ 01 мая 2019

Я хочу добавить элемент таблицы после определенного элемента после запуска элемента на сервере, но когда я попытался получить доступ к идентификатору элемента, он был обработан как строка

Я пытался показать идентификатор или элемент в предупреждении, но это строка Я пытался проверить другие сообщения о переполнении стека, но все они говорят, что способ доступа такой же, как для меня производит строки Я попытался поместить тот же код, что и в строке в файле aspx, и он работает, поэтому я знаю, что с <% = message.ClientID%>

проблем нет

в aspx файле

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div class="Manager">
        <p id="message" runat="server" class="caption">
            There aren't any users in the database
        </p>
        <form runat="server">
            <asp:HiddenField id="hfData" runat="server"/>
        </form>
        <script src="js/Manager.js" ></script>
    </div>
</asp:Content>

в Manager.js

var message = document.getElementById('<%=message.ClientID %>');
message.parentNode.insertBefore(tbl, message.nextSibling);

сообщение равно неопределенному, когда я смотрю его значение и следующий код не выполняется

Я попробовал следующее, чтобы попытаться получить доступ к идентификатору

var str = '<%=message.ClientID%>';
alert(str);

но предупреждает <% = message.ClientID%> как строку Он должен произвести вывод ContentPlaceHolder1_message

Ответы [ 2 ]

3 голосов
/ 01 мая 2019

Во-первых, попробуйте добавить скрипт Manager.js прямо на страницу aspx, который работал для меня.Я боюсь, что в тот момент, когда на сервере выполняется страница .aspx, Manager.js не включается, поскольку страница отображается.

<p id="message" runat="server" class="caption">
     There aren't any users in the database
</p>
<script type="text/javascript">
     var str = '<%=message.ClientID%>';
     alert(str);
</script>
1 голос
/ 01 мая 2019

Мне удалось решить эту проблему, создав переменную javascript на стороне сервера с помощью бритвенного кода, а затем используя ее во внешнем файле javascript

в aspx

<script type="text/javascript">
    var messageId = '<%=message.ClientID%>';
</script>

в Manager.JS

var message = document.getElementById(messageId);
message.parentNode.insertBefore(tbl, message.nextSibling);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...