0

사용자의 새 탭 화면을 대체하는 Chrome 확장 프로그램입니다.Chrome 확장 프로그램에 jQuery가로드되지 않는 이유는 무엇입니까?

내 HTML의 'hello'가 경고하지 않기 때문에 jQuery가로드되지 않습니다. 매니페스트 또는 HTML에서 jQuery를로드해야합니까? 어느 것이 든 나는 HTML이 같은 장소에 있어야한다고 생각합니다.

의 manifest.json :

{ 
    "manifest_version": 2, 

    "name": "Some title", 
    "description": "Some description.", 
    "version": "1.0", 

    "chrome_url_overrides": { 
    "newtab": "index.html" 
    }, 

"content_scripts": [ 
    { 
     "matches": ["newtab"], 
     "css": ["style.css"], 
     "js": ["jquery.js"] 
    } 
    ] 

} 

index.html을 명시 적으로 manifest.json에 권한을 지정하지 않고 크롬 확장에 원격 위치에서 스크립트를로드 할 수 없습니다

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="bootstrap.min.css"> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
    <script> 
     $(document).ready(function() { 
      alert("hello"); 
     $(function(){ 
      $('#container').masonry({ 
      // options 
      itemSelector : '.item', 
      columnWidth : 300 
     }); 
    }); 
    </script> 
</head> 
<body> 
<!-- etc --> 

답변

1

, 당신은 manifest.json에 권한을 지정할 수 있습니다 또는 jquery를 다운로드하고 jQuery 파일로 확장을 배포하십시오. 두 번째 옵션 (확장 폴더에 jquery의 로컬 복사본이 있음)은 훨씬 더 합리적인 것처럼 보입니다.

+0

두 번째 옵션을 사용해 보았습니다. 위와 같이 콘텐츠 스크립트와 HTML을 통해로드하고 있지만 CSS는 콘텐츠 스크립트에로드되지 않으며 jQuery가 전혀로드되지 않습니다. – Sebastian

0

index.html이 배경 페이지이면 확장 폴더에 jquery를 추가하고 상대적으로 참조하십시오.

페이지에 적용된 경우 오른쪽 here에 설명 된 내용 스크립트를 지정하십시오. 다시 말하지만, 지역과 친척을 유지하십시오.

+0

위의 코드에서 볼 수 있듯이 콘텐츠 스크립트가 있지만 HTML에서 CSS 링크 태그를 제거하면 CSS가로드되지 않기 때문에 작동하지 않습니다. – Sebastian

+0

그래서 당신이 말하는 index.html은 http://www.ibm.com과 같은 네트워크 리소스입니까? 이 경우에는 URL '일치'패턴이 작동 할 때마다 스크립트 스크립트가로드 될 때마다 스크립트 태그를 추가 할 필요가 없습니다. –

+0

index.html은 새 탭을 만들 때마다 표시되는 페이지입니다. – Sebastian

관련 문제