2009-12-17 1 views
1

어떻게 내부에 JavaScript 함수를 정의 할 수 있습니까? 끝 태그에 JavaScript 파일을로드하려고 시도했지만 JavaScript 파일에서 함수를 호출 할 수 없습니다.iframe facebook 앱의 JavaScript 기능을 <fb : serverfbml> 태그 내에 정의하십시오.

다음은 FBML 태그입니다 :

<fb:serverfbml> 
    <script type="text/fbml"> 
    <fb:fbml> 
     <a href="#" id="this" onclick="do_colors(this); return false">Hello World!</a> 
     <script src="http://absolute.path.to/your/javascript/file.js"></script> 
    </fb:fbml> 
    </script> 
</fb:serverfbml> 

그리고 여기 file.js에서 자바 스크립트 함수입니다 :

function random_int(lo, hi) { 
    return Math.floor((Math.random() * (hi - lo)) + lo) 
} 

function do_colors(obj) { 
    var r = random_int(0, 255), b = random_int(0, 255), g = random_int(0, 255); 
    obj.setStyle({background: 'rgb('+[r, g, b].join(',')+')', 
         color: 'rgb('+[r<128?r+128:r-128, g<128?g+128:g-128, b<128?b+128:b-128].join(',')+')'}); 
} 

내가 응용 프로그램을 개발하기 위해 레일 및 facebooker를 사용합니다. JavaScript 기능 포함에 대한 아이디어 나 제안이 있으십니까?

답변

0

먼저 스크립트를로드 해 보셨습니까? 다른 가이드 라인이 두 개 있습니다. here 스크립트를 변경하면 다음과 같은 문제가 발생할 수 있습니다.

캐시 정책이 만료되지 않도록 로 설정되어 있기 때문에, 당신은 URL 만 스크립트의 내용이 변경 될 경우를 업데이트해야합니다. 스크립트의 새 버전을 사용할 때 예를 들어, http://foo.com/bar.js?v=1.0http://foo.com/v2.0/bar.jshttp://foo.com/v1.0/bar.jshttp://foo.com/bar.js?v=2.0 에 또는 변경할 수 있습니다.