ajax 로 딩 페이지 실행 js
7169 단어 Ajax
공용 페이지 는 여러 페이지 에서 호출 되 어야 합 니 다. 그 중에서 일부 js 는 공용 페이지 에 쓰 여 있 습 니 다. ajax 를 통 해 이 페이지 를 불 러 온 후 js 를 실행 할 수 없습니다.
해결 방향
1. iframe 을 추가 하 는 방법 으로 js 를 집행 하고 저 등 코드 결벽 자 에 게 무시 당 합 니 다.
2. document. write 출력 코드 를 사용 합 니 다. 저 등 간결 주의 자 들 이 원 하지 않 습 니 다.
3. 가장 간단 한 방법 은 js 를 호출 이 필요 한 부모 페이지 에 두 는 것 입 니 다. 이러한 공용 페이지 를 원 하 시 면 모든 곳 에서 한 번 씩 호출 하고 코드 가 불필요 합 니 다.
4. eval 은 해결 방법 이지 만 효과 가 없다.
5. 복잡 한 해결 방법: 로 딩 페이지 의 모든 js 와 일치 합 니 다. 이 js 들 에 게 똑 같은 < script > 탭 을 만 들 고 js 내용 을 삽입 하면 실 행 됩 니 다.그러나 사용 중 Firefox 가 가능 하지만 IE 는 따 르 지 않 습 니 다.(스승 님, 따 르 세 요 ~)
해결 방안 (1)
상기 여러 가지 방식 을 종합 하여 불리 한 요 소 를 제거 하고 비교적 실 용적 인 방법 을 정리 하면 이러한 공용 페이지 에서 ajax 로 딩 을 실행 하 는 js 의 수 요 를 만족 시 킬 수 있 습 니 다. ajax 로 딩 한 공용 함수 에 코드 를 추가 하면 됩 니 다.주요 코드 는 다음 과 같 습 니 다.
function executeScript(html) {alert(13); var regDetectJs = /
if(jsContained) { var regGetJS = /
var jsNums = jsContained.length; for (var i=0; i
[js]
view plain
copy
// 첫 번 째 단계: 불 러 온 페이지 에 js 가 있 는 지 여부
var regDetectJs = /
var jsContained = ajaxLoadedData.match(regDetectJs);
// 두 번 째 단계: js 가 포함 되 어 있 으 면 js 를 한 단락 씩 꺼 내 서 불 러 옵 니 다.
if(jsContained) {
// 세그먼트 추출 js 정규
var regGetJS = /
// 순차 세그먼트 실행 js
var jsNums = jsContained.length;
for (var i=0; i
var jsSection = jsContained[i].match(regGetJS);
if(jsSection[2]) {
if(window.execScript) {
// IE 에 대한 특별 대우
window.execScript(jsSection[2]);
} else {
// 다른 대부분의 브 라 우 저 에 사용 할
window.eval(jsSection[2]);
}
}
}
}
설명: window. execScript 는 IE 로 인식 하고 다른 브 라 우 저 는 eval 을 사용 해 야 합 니 다.
이로써 비교적 완벽 한 해결 이 라 고 할 수 있다.
[전환: http://www.impng.com/web-dev/execscript-loaded-by-ajax.html]
해결 방안 (2)
ajax 로 딩 페이지 의 js 총 결 을 실행 합 니 다.
2010-12-01 16:40:15| 분류: JavaScript | 태그: ajax 집행 하 다. js |상점 구독 하 다.
'ajax 로 딩 페이지 에 포 함 된 자바 script 을 실행 합 니 다.' 라 는 글 을 보고 최근 에 이 문제 에 얽 매 여 죽 고 싶 은 어린이 신발 들 에 게...
이벤트 배경
공용 페이지 는 여러 페이지 에서 호출 되 어야 합 니 다. 그 중에서 일부 js 는 공용 페이지 에 쓰 여 있 습 니 다. ajax 를 통 해 이 페이지 를 불 러 온 후 js 를 실행 할 수 없습니다.
해결 방향
1. iframe 을 추가 하 는 방법 으로 js 를 집행 하고 저 등 코드 결벽 자 에 게 무시 당 합 니 다.
2. document. write 출력 코드 를 사용 합 니 다. 저 등 간결 주의 자 들 이 원 하지 않 습 니 다.
3. 가장 간단 한 방법 은 js 를 호출 이 필요 한 부모 페이지 에 두 는 것 입 니 다. 이러한 공용 페이지 를 원 하 시 면 모든 곳 에서 한 번 씩 호출 하고 코드 가 불필요 합 니 다.
4. eval 은 해결 방법 이지 만 효과 가 없다.
5. 복잡 한 해결 방법: 로 딩 페이지 에 있 는 모든 js 와 일치 합 니 다. 이 js 들 을 위해 같은 < script > 탭 을 만 들 고 js 내용 을 삽입 하면 실 행 됩 니 다. 그러나 사용 중 Firefox 가 가능 하지만 IE 는 실행 되 지 않 습 니 다. (스승 님, 그만 하 세 요 ~)
해결 방안
상기 여러 가지 방식 을 종합 하여 불리 한 요 소 를 제거 하고 비교적 실 용적 인 방법 을 정리 하면 이러한 공용 페이지 에서 ajax 로 딩 을 실행 하 는 js 의 수 요 를 만족 시 킬 수 있 습 니 다. ajax 로 딩 한 공용 함수 에 코드 를 추가 하면 됩 니 다. 주요 코드 는 다음 과 같 습 니 다.
// : js
var regDetectJs = /<script(.|
)*?>(.|
|\r
)*?<\/script>/ig;
var jsContained = ajaxLoadedData.match(regDetectJs);
// : js, js
if(jsContained) {
// js
var regGetJS = /<script(.|
)*?>((.|
|\r
)*)?<\/script>/im;
// js
var jsNums = jsContained.length;
for (var i=0; i<jsNums; i++) {
var jsSection = jsContained[i].match(regGetJS);
if(jsSection[2]) {
if(window.execScript) {
// IE
window.execScript(jsSection[2]);
} else {
//
window.eval_r(jsSection[2]);
}
}
}
}
설명: window. execScript 는 IE 로 인식 하고 다른 브 라 우 저 는 eval 을 사용 해 야 합 니 다.
이로써 비교적 완벽 한 해결 이 라 고 할 수 있다.
function executeScript(html) { var reg = /
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
원생 Ajax와 jQuery Ajax의 차이점 예시 분석선언: 이번에 소개한 것은 aax와 백그라운드를 이용하여 데이터 교환을 하는 작은 예이기 때문에 demo는 서버를 통해 열어야 합니다.서버 환경은 구축하기 매우 좋다. 인터넷에서wamp나xampp를 다운로드하여 한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.