如何解決用ajax請求來的頁面但是js不執行

2021-08-18 21:53:27 字數 736 閱讀 9413

有乙個公用頁面需要在多個頁面呼叫,其中涉及到部分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)*?/ig;

var jscontained = ajaxloadeddata.match(regdetectjs);

// 第二步:如果包含js,則一段一段的取出js再載入執行

if(jscontained) else }}

}

解說下:window.execscript就ie認,其他瀏覽器需要用eval啦。

至此,算比較完美的解決。

**:

ajax 請求如何解決亂碼

今天遇到乙個問題,有關ajax 請求中傳輸中文,遇到亂碼的問題。如下 folderid foldername encodeuri encodeuri foldername custid custid,success function msg error function error 如上 如果只是傳...

ajax 請求時,如何解釋 json資料?

在原生中解析json資料我們需要用到json.parse xhr.responsetext 使用 eval 方法 var jsondate var jsonobj eval jsondate eval方法和json.parse方法有一些區別 var jsondate var jsonobj eval...

如何解決GET請求中文亂碼問題?

亂碼也是一件很頭痛的事 一般情況下我們利用下面方法,可以解決post請求中文亂碼 將物件轉換為httpservletrequest,httpservletresponse 操作 解決亂碼 request.setcharacterencoding utf 8 response.setcontentty...