我建立一個頁面在ASP.NET從標記和JavaScript,幾個.js文件,樣式表的HTML文件,以及一些額外的內聯JavaScript在ASP.NET頁面上。使用ASP> NET開發服務器主機在Visual Studio 2010中工作。
XML和js文件由第三方提供,不能更改,其中一個js文件是'我們'的文件,可以修改。
HTML文件是可填寫的調查問卷。目前,我們有一個桌面應用程序「託管」HTML文件並保存答案。
總體目標是在網站上託管調查問卷,以便我們可以從網絡上的桌面應用程序複製功能。 JavaScript將被用於複製桌面應用程序不包含ASP.NET。
該HTML文件包含<script>
指向js文件的鏈接以及標記之後的一大塊嵌入式javascript。 內聯javascript中的一行(不是函數,實際代碼行)調用'我們'包含文件中的函數。
在ASP.NET代碼中,我從HTML文件中提取內容並將其應用於構建ASP.NET頁面。 CSS鏈接,scriptlinks,標記,內聯scriptblocks等,所以輸出的響應看起來是這樣的:
<html>
<head>
<link to CSS>
<script src=thirdparty.js>
<script src=our.js>
</head>
<body>
third party HTML markup
<script>
line of code here that calls function in our.js;
</script>
<script>
desktop duplication code here;
</script>
</body>
</html>
如果我複製js文件的內容,並將其打造成爲頁面內嵌腳本塊一切工作正常。如果我將它們包含爲鏈接,那麼有時候會是上面提到的這一行會在調試器中拋出一個 'function undefined'錯誤。即它的行爲就好像JavaScript文件沒有加載/包含一樣。據我所知,這不應該發生,因爲所有的JavaScript都應該在任何運行之前加載和解析。
問:
是JavaScript加載無序/異步?如果是這樣,我怎麼能強制所有的JavaScript加載和解析線路運行之前。
注:
是的,我確實有建立在ASP.NET頁面中,「文件」是動態的,從這樣不能預先準備的Web服務實際讀取。我試圖創建的是處理多個供應商調查問卷的通用方法。
第三方JavaScript和標記只適用於IE,因爲它是一個遺留系統。
由於顯而易見的原因,我無法顯示實際的代碼。
我不允許更改第三方代碼,document.ready已被第三方使用。正如onload事件一樣......我受到已有條件的阻礙。 – UserEleventyOne
是否允許包含其他第三方庫,如jQuery? – kzhen
查看備用建議的更新答案 – kzhen