2016-12-19 1 views
0

라디오에서 노래를 재생하는 아티스트 및 제목을 Chrome 확장자로 가져 오려고합니다. 이 링크를 예로들 수 있습니다. http://www.radiogrenouille.com/내부 기능으로 지정된 html 페이지에서 값을 얻으려면 어떻게해야합니까?

나는 지금까지 무엇을 했습니까? 나는 http 요청을 만들고 html을 얻는다. 그리고 노래 정보를 분석하십시오.

popup.js

function httpGet(theUrl, callback) 
{ 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     callback(xmlhttp.responseText); 
    } 
    } 
    xmlhttp.open("GET", theUrl, true); 
    xmlhttp.send(); 
} 


window.onload = function() { 
    httpGet("http://www.radiogrenouille.com/",function(result) { 
    var el = document.createElement('html'); 
    el.innerHTML = result; 
    console.log(el.querySelectorAll(".titreencours")[0].innerText); 
    }); 
} 

그러나 el.querySelectorAll(".titreencours")[0].innerText 반환 빈 문자열. 어떻게해야합니까? 이 값은 웹 사이트의 titresplayer에 의해 설정 되었기 때문에입니까? 어떻게 정보를 얻을 수 있습니까?

{ 
    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup.html" 
    }, 
    "description": "Add to playlist", 
    "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtJPZPVU+/+uNH4xFmNWJuiGzSxWiiFnBcbqqdXaXaNegydbYC82Mio7967WfVSUFip1UWy2bJP1IVxPh9HK2CXH3W06RxvE99dafYPTGrB3ccb3KlFCdiwmNECxXAR9GY5hxyc5jsyeDWiJTDn+Fbs9XkLwndCsZx94/sInQvAjCv6FwtFj44S2t1+L7uTSSBzy1EagYkw4aocUOL+TJ4QNg2HG5iAHq/iezVrCPF81l+MQ4DaPAgSYb7gRLfS+CnKGBen9GeeoSL3AsjWJWbmGQuNOxUV+A0rduhWmaamTA6lGrxaqQE3ZMsEG83rQS866W/KJWbkrQLLg+D/022QIDAQAB", 
    "manifest_version": 2, 
    "name": "Add to playlist", 
    "permissions": [ "https://*/*", "http://*/*", "tabs", "activeTab" ], 
    "update_url": "https://clients2.google.com/service/update2/crx", 
    "version": "1.0.1" 
} 
+0

주제가 될 질문을 작성하십시오. ** complete ** [mcve]를 포함 시키십시오. * 문제가 중복됩니다. * manifest.json *, background/content/popup 스크립트/HTML 중 일부를 포함합니다. 디버깅 도움을 요청하는 질문 ("**이 코드가 작동하지 않는 이유는 무엇입니까? **")에는 다음이 포함되어야합니다 : ► 원하는 동작, ► 특정 문제 또는 오류 * 및 질문을 재현하는 데 필요한 가장 짧은 코드 ** 그 자체**. 분명한 문제 설명이없는 질문은 다른 독자에게 유용하지 않습니다. 참조 : "** [mcve] **를 만드는 방법", [여기에 대해 나는 어떤 주제를 물을 수 있습니까?] (http://stackoverflow.com/help/on-topic), [ask]. – Makyen

+0

나는 quesiton을 편집하고 내 manifest.json을 추가한다. 나는 상황을 설명했다고 생각했다. 노래 제목과 아티스트를 가져오고 싶지만 비어있게 되나요? – mmu36478

답변

1

코드 로직이 올바른지 확인하십시오. 하지만 페이지 내용이 Javascipt에서 많이 생성되었음을 알아야합니다.

아약스 요청에서 얻은 것은 서버에서 렌더링 된 콘텐츠 일뿐입니다.

페이지 원본을 보려면 Ctrl + U를 누르면 빈 태그 <span class="titreencours"></span>이 표시됩니다. 그래서 빈 문자열과 제목이있는 것입니다. 다른 태그도 비어 있습니다. 당신의 내용

  <div id="titreEnCours"> 
       <div class="contenutitreEnCours"> 
       <p><span class="titreencours"></span></p> 
       <p><span class="artistetitreencours"><strong></strong> </span></p> 
       <p class="albumencours"><span class="nom"></span> <span class="labelencours"></span></p> 
       <p class="radioencours"></p> 
       </div> 
       <span></span> 
      </div> 

는 페이지가 http://www.radiogrenouille.com/wp-content/themes/radiogrenouille-new/cestpasse.php

건배에서 재생 목록을로드합니다.

+0

정확히 무슨 일이 있었는지 당신이 말한 것입니다. 어떻게이 PHP 링크를 얻었습니까? – mmu36478

+0

네트워크 로그를 제대로보고 있습니까? – mmu36478

+0

예, 네트워크 로그 – vothaison

-1

의 manifest.json은 다음 빈 응답 OK (200)를 얻을 수 있습니다 서로 다른 기원에서 노력하고있는 것 같은, '결과'에 응답 페이지를 얻고있는 경우 체크하십시오.

+0

질문에 대한 답변을 제공하려면 * only *를 사용해야합니다. OP로부터 추가 정보를 요청하려면 질문에 의견을 남기십시오. 이것은 정말로 논평이 아니라 대답입니다. 조금 더 많은 담당자와 함께 [주석을 게시 할 수 있습니다] (// stackoverflow.com/privileges/comment). – Makyen

0

문제는 해결의 요청을 만들 수 있습니다 ... 크로스 도메인 요청을 시도하며, 연결중인 서버가 (Access-Control-Allow-Origin가 응답 설정되지 않음) 허용하지 않는다는 것입니다 서버 측 코드 (예 : PHP curl) 및 서버 측 파일 (예 : myAjax.php)에 ajax 요청을하십시오.

관련 문제