有乙個公用頁面需要在多個頁面呼叫,其中涉及到部分js已經寫在了公用頁面中,通過ajax載入該頁面後無法執行其中的js。
1. 採用附加乙個iframe的方法去執行js,為我等**潔癖者所不齒。
2. 使用document.write輸出**,我等簡潔主義者所不願。
3. 最簡單的方法是把js放到需要呼叫的父頁面,那想這樣的公用頁面,每個地方呼叫都要寫入一次,**冗餘。
4. eval是個解決方法,雖然低效。
5. 複雜的解決方法:正則匹配出載入頁面中的所有js,為這些js建立同樣多個標籤,把js內容插入即可執行。但使用中發現,firefox可行,但ie還是不從。(師太,您就從了吧~)
綜合以上多種方式,排除不利因素,總結出乙個比較實用的方法,可以滿足類似這樣公用頁面的執行ajax載入的js的需求,在ajax載入的公用函式裡面加上**即可。主要**如下:
//第一步:匹配載入的頁面中是否含有js
var regdetectjs = /(.|\n|\r\n)*?<\/script>/ig;
var jscontained =ajaxloadeddata.match(regdetectjs);
//第二步:如果包含js,則一段一段的取出js再載入執行
if(jscontained)
else}}
}
解說下:window.execscript就ie認,其他瀏覽器需要用eval啦。
至此,算比較完美的解決。
**:
ajax載入html檔案
受到單頁面應用的觸發,想著傳統的jquery能不能實現這樣乙個應用,然後在ajax這裡發現了新大陸 請原諒我的無知 分析 載入乙個html的話是可以分為載入其中某個塊 div 和載入整個頁面,而不管載入其中任何一種都是需要本頁面的乙個塊 div 來進行載入展示。載入的方法可以是 ajax 方法也可以...
ajax動態載入html模組
在開發網頁的工作中,我們會經常遇到乙個事情,多個頁面的某乙個或某幾個部分是相同的,如何復用這些部分從而節省開發時間呢,在asp,jsp開發中就有引用模組的概念,現在我們來利用ajax實現模組引用,請看一段html 假設這是公共的部分,很多頁面都會引用這部分 我們可以將公共部分用乙個在html中沒有的...
在HTML頁面載入完畢後執行某個js
在dom載入完就可以執行 比window.onload更早 在同一頁面中可以多次出現.ready 兩者主要區別 window.nl ad function document ready function 使用 document ready function 一般來說都要優於使用onload事件處理程...