0

콘텐츠 스크립트에 이상한 문제가 발생했습니다. 콘텐츠 스크립트는 매니페스트에 "run_at" : "document_end"으로 정의됩니다. 페이지가로드 된 후 스크립트는 객체 태그를 페이지에 삽입하고 (미리 정의 된 ID를 가진 태그가 아직없는 경우) type, width, height, innerHTMLtitle과 같은 일부 속성을 설정합니다. 모든 것은 여기에서 잘 작동합니다. 크롬 콘텐츠 스크립트에서 DOM 개체 속성에 액세스

function checkForObject() 
{ 
    var obj = document.getElementById("unique_id"); 
    if(obj == null) 
    { 
    var d = document.createElement("object"); 
    d.id = "unique_id"; 
    d.width = "1"; 
    d.height = "1"; 
    d.type = "application/x-y-z"; 
    d.title = "1000"; 
    d.style.position = "absolute"; 
    d.style.left = "0px"; 
    d.style.top = "0px"; 
    d.style.zIndex = "1"; 
    document.getElementsByTagName("body")[0].appendChild(d); 
    } 
} 

checkForObject(); 

나는 속성에 적절한 값으로 페이지의 HTML 코드에서 새 개체를 참조하십시오.

얼마 후 나는 동일한 콘텐츠 스크립트에서 개체의 title 속성을 읽어야합니다. 코드는 간단하다 :

function ReadTitle() 
{ 
    var obj = document.getElementById("unique_id"); 
    var value = obj.title; // breakpoint 
    console.log(value); 
    // TODO: want to use proper title value here 
} 

기능이 background.html 페이지에서 호출됩니다

chrome.tabs.onActivated.addListener(
function(info) 
{ 
    chrome.tabs.executeScript(info.tabId, {code: 'setTimeout(ReadTitle, 250);'}); 
}); 

불행하게도, ReadTitle에서 내가 기대하지 무엇을 얻고있다.

function title() { [native code] } 

내가, 내가 title을 포함한 모든 객체 속성이 올바른지 감시자에서 볼 // breakpoint 코멘트에 의해 표시 줄에 중단 점을 설정 한 경우 : 대신 title의 현재 가치 나는 기록 된 값은 참조하십시오. 그럼에도 불구하고 변수 value은 위에서 설명한 설명 문자열을 얻습니다.

분명히, 나는 간단한 것을 놓쳤다. 그러나 나는 그것을 이해할 수 없다.

대답은입니다. 그것은 사용 된 유형의 객체를 호스팅하는 npapi 플러그인의 버그였습니다. 질문을 읽어 도와 주신 모든 분들께 사과드립니다.

+0

문제를 복제하기에는 정보가 충분하지 않습니다. 내 스크립트는 하루 종일'title'을 포함하여 속성을 설정하고 가져옵니다. (1) ** 제목 **을 설정하는 코드는 무엇입니까? (2) 대상 페이지가 무엇입니까 (정확한 URL이 가장 좋습니까)? (3) 사용중인 Chrome 버전은 무엇입니까? (4) 어떤 OS인가? (5) 전체 스크립트에 링크하거나 게시하십시오. –

+0

@BrockAdams, 대상 페이지가 다릅니다. 이 스크립트는 모든 페이지에서 작동합니다 ("* : // */*"와 일치 함). 나는 지금 더 많은 코드를 추가하고있다. – Stan

답변

0

개체에 사용 된 NPAPI 플러그인이 지원되는 방법으로 실수로 title을보고했습니다.

관련 문제