2013-06-28 2 views
0

HTML과 JavaScript를 사용하여 가장 간단한 Chrome 확장 프로그램을 코딩하고 있지만 분명히 JavaScript가 작동하지 않으며 그 이유를 모르겠습니다. 여기Chrome 확장 프로그램에서 자바 스크립트가 작동하지 않는 이유가 무엇인가요?

<script> 
    function myFunction() 
    { 
    alert("I am an alert box!"); 
    } 
    </script> 
    <input type="button" onclick="myFunction()" value="Show alert box"> 

내의 manifest.json 파일의 코드입니다 : 여기에 내 HTML 코드

를 HTML DOCTYPE이 과도
{ 
    "name": "Blank new tab page", 
    "version": "0.2", 
    "incognito": "split", 
    "chrome_url_overrides": { 
    "newtab": "blank.html" 
    }, 
    "manifest_version": 2 
} 
+1

인라인 JS는 팝업 페이지에서 사용할 수 없습니다. 그리고 IMHO는 Chrome의 주장처럼 보안뿐만 아니라 사람들이 구조를 동작과 분리하도록 강요합니다. –

+0

중복 질문에는 문제를 해결할 수있는 대답이 있습니다. 먼저 검색하십시오! :) –

답변

0

인가가? 그렇지 않으면, 어쩌면 당신의 코드가 더 좋아 보일 것입니다 :

물론
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> 
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> 
<body> 
    <input type='button' value='Show alert box' onclick='myFunction()' /> 
    <script type='text/javascript'> 
    function myFunction(){ 
     alert('I am an alert box!'); 
    } 
    </script> 
</body> 
</html> 

, 나는 그것을 재 배열. 그래도 코드가 작동해야합니다. 나는 개인적으로 코드를 더욱처럼 보이는 것이 좋습니다 것입니다 :

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 
    'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> 
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> 
<body> 
    <input type='button' value='Show alert box' id='btn' /> 
    <script type='text/javascript' src='external.js'></script> 
    <script type='text/javascript'> 
    showAlert('btn'); 
    </script> 
</body> 
</html> 

external.js가 캐시됩니다. 그것은 같은 것을 볼 수 있습니다

function E(e){ 
    return document.getElementById(e); 
} 
function showAlert(e){ 
    E(e).onclick = function(){ 
    alert('I am an alert box!'); 
    } 
} 

후자의 코드를 더 재사용을, 당신에게 jQuery의 $()에 대한 아이디어를 줄 것이다. 그것은 내 E() 기능의보다 정교한 버전입니다.

관련 문제