읽어 주셔서 감사합니다.이 Javascript가 Opera 또는 Chrome에서 작동하지 않는 이유는 무엇입니까?
내가 가지고있는 다음과 같은 내장되어 여러 스크립트 :
scriptone.js
function FunctionOne(){
// Do a bit of work...
// Include a second javascript file, scripttwo.js
// that contains a function called FunctionTwo.js
var scrb = document.createElement('script');
scrb.type = 'text/javascript';
scrb.src = 'http://www.example.com/scripttwo.js?bunchofargs=varied';
// Append it to the head.
document.getElementsByTagName('head')[0].appendChild(scrb);
// Can't run the second function directly, because it may not be loaded quite yet,
// So use the Waiter function.
Interval = setInterval("Waiter()", 10);
// All done.
return;
}
function Waiter(){
if(window.FunctionTwo) {
clearInterval(Interval);
FunctionTwo();
}
}
scripttwo.js
function FunctionTwo(){
document.write('something based on calling page');
}
이 FF와 함께 잘 작동하고 IE는 지원하지만 Opera 나 Chrome은 지원하지 않습니다. 크롬/오페라에서는 모든 것이 스크립트 1에서 제대로 작동하는 것 같습니다. 그러나 scripttwo.js에서 일어날 일은 실제로 일어나지 않습니다. 마치 scripttwo.js가 포함되지 않은 것입니다.
왜 Opera 또는 Chrome에서 작동하지 않는가?
아마 내가 호환되지 않는 무언가를 사용하고 있거나 내가 모르는 보안 기능이 있습니까? 모든 파일은 동일한 도메인에 있습니다.
주 큰 응답 - 정말 고마워요!
실제 코드에서 FuncionOne은 오타입니다. 실제 코드에서는 더 나은 함수 이름을 사용하지만 여기서는 가독성을 위해 변경했습니다. Joe White가 문제가되어서는 안되는 것에 동의하지만 범위가 될 수 있습니다. 자바 스크립트 (내 약한 언어 중 하나)를 알고 있습니까? FunctionOne은 HTML 문서의 머리 또는 본문에서 호출됩니다.
저는 또한 타이머 2를 피하기 위해 스크립트 2의 끝 부분에 FuncTwo를 추가하는 아이디어를 좋아합니다. 깨끗한 사람, 그리고 일단 분명히 누군가가 당신에게 그것을 지적 ...
내가이 다음 작업 후 업데이 트됩니다. 다시
업데이트 :
안녕 모두,
내가 지금은 FF, IE와 크롬에서 작업해야하지만 오페라는 어떤의 .js를로드하는 것을 거부하는 것 같다 이제 모든 파일. 나는 이것이 일종의 Opera 문제 (Opera: .js file won't load) 일 뿐이며 다른 세 가지 작업을 진행할 것이라고 생각합니다. 그것이 어떻게되었는지 알려주십시오.
Interval은 로컬로 var로 선언되지 않습니다. 따라서 암시 적으로 Window.Interval (JavaScript에 대해 싫어하는 것 중 하나)입니다. 범위가 문제가되어서는 안됩니다. –
코드가 작동해야한다고 확신하지만 일부 플랫폼에서는 올바르게 실행되지 않으면 불필요한 암시가 대상이됩니다. 각 주요 브라우저는 Javascript 자체 구현을 실행하므로 틈새를 좁히는 데 많은 범위가 있습니다. – Oli