문제

다른 XHTML 페이지에서 꺼내어 JavaScript "클래스"를 가져 오는 JavaScript가 있습니다. 원격 JavaScript는 다음과 같습니다.

    (function() {
        this.init = function() {
            jQuery("#__BALLOONS__tabs").tabs();
        };
    })

이것이 this.javaScript로 가져온 후에, 나는 그것을 평가하고 인스턴스화하려고합니다.

   this.javascript = eval("(" + this.javascript + ")");
   this.javascript = new this.javascript();
   this.javascript.init();

물론 이것은 IE를 제외한 모든 브라우저에서 완벽하게 작동합니다. 즉, 평가 라인에서 실패합니다. 누구든지 IE 또는 대안 에서이 작업을 수행 할 수있는 방법에 대한 제안이 있습니까?

고마워요, 피트

도움이 되었습니까?

해결책

시도 했습니까?

eval("this.javascript = (" + this.javascript + ")");

...?

다른 팁

이것은 좋은 브라우저와 나쁜 브라우저와 함께 작동했습니다 (즉, 즉).

var code_evaled;
function eval_global(codetoeval) {
    if (window.execScript)
        window.execScript('code_evaled = ' + '(' + codetoeval + ')',''); // execScript doesn’t return anything
    else
        code_evaled = eval(codetoeval);
    return code_evaled;
}

즐기다

(평가는 IE의 객체 방법이 아닙니다). 그래서 뭘 할건데? 답은 독점적 IE 메소드 창을 사용하여 코드를 평가할 수 있다는 것입니다.

function loadMyFuncModule(var stufftoeval) {
  var dj_global = this; // global scope reference
  if (window.execScript) {

    window.execScript("(" + stufftoeval + ")");

    return null; // execScript doesn’t return anything
  }
  return dj_global.eval ? dj_global.eval(stufftoeval) : eval(stufftoeval);
}

최악이 진정으로 최악이되면 이와 같은 것이 효과가있을 수 있습니다.

var self = this;
funcid = "callback" + Math.random();
window[funcid] = function(javascript) {
  delete window[funcid];
  self.javascript = javascript;
  self.javascript = new self.javascript();
  self.javascript.init();
}
document.write("<script language='javascript'>" +
               "window." + funcid + "(" +
                 "(" + this.javascript + "));" +
               "</script>");

나는 eval ()의 IE와 같은 문제가 있었고 "window.execscript"의 함수는 나에게 효과가 없었습니다. 페이지 (내 경우 PHP)에서 JavaScript로 배열을 얻는 솔루션은 JSON을 사용하는 것이 었습니다.

// myfeed.php

return json_encode($myarray);

// myjs.js

$.getJSON('myfeed.php',function(data){dataAlreadyEvaled = data;});

누군가를 돕는 경우 평가 () 기능이 필요하지 않습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top