簡體   English   中英

如何觸發附加到頁面的內聯Javascript? (ASP.NET Web表單)

[英]How do I trigger inline Javascript that's appended to my page? (ASP.NET webforms)

我有一個由服務器生成的頁面部分,其中包括由服務器編寫的內聯javascript(這是ASP.NET Webforms)。 這個javascript用於將onchange事件綁定到我的下拉列表中,該下拉列表位於$(document).ready()中。
當頁面加載時打開我的頁面部分時,將觸發$ {document).ready(),並且下拉列表已正確綁定。 但是,如果在頁面加載時未打開該部分(即我必須單擊“擴展”按鈕,該按鈕與服務器聯系以構建並加載頁面部分),則不會觸發內聯腳本。
基本上,區別在於,在一種情況下, <script>標記位於已加載的初始html中,而在另一種情況下, <script>標記在頁面加載后附加至初始html。

這是內聯腳本:

<script type="text/javascript">
    alert('hi inline!');
    $j(document).ready( function(){ 
        var $emailNameHidden = $j('#hidden_TargetedEmailName');
        $emailNameHidden.on('change', function(){
            van.TargetedEmails.loadTestCaseNameSelect($emailNameHidden.val());
        });
     });
</script>

我添加了警報以查看是否可以通過將其放置在$(document).ready()之外來觸發,但是該警報也僅在腳本包含在初始頁面加載中時才觸發。

將內聯腳本添加到頁面后,如何觸發它?

旁注:我嘗試將這些內容放入頁面部分中包含的外部JS文件中,但是當我嘗試將下拉列表綁定到外部文件中時,該綁定在下拉列表加載完成之前觸發,因此未綁定當我將綁定放入$(document).ready()時,沒有觸發$(document).ready()。

只需將客戶端邏輯移動到pageLoad事件即可。

每當頁面加載到瀏覽器中時,即每次回發(ajax或非ajax)之后以及初始加載時,ASP.Net框架都會自動觸發此JavaScript事件。 當您在ASP.Net中進行Ajax發布時,不會觸發來自jquery的文檔就緒事件,但是即使進行了Ajax發布,也將觸發pageLoad事件。

function pageLoad() {
//put the document.ready logic here

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM