2012-08-24 3 views
1

iframe 내부에서 iframe.html을로드하고 해당 iframe을 Chrome 확장 프로그램의 현재 페이지 DOM에 추가하려고합니다. 나는 그렇게했고 클릭 이벤트를 처리 할 수 ​​있었고 프레임 요소 값 (입력, 선택 상자)을 얻을 수있었습니다. 여기까지는 모든 것이 잘됩니다. 이제 문제는 내가 DOM에 삽입 한 iframe.html 내부의 내용을 수정할 수 없다는 것입니다 (구체적으로 DOM에 추가 된 iframe.html에 입력 상자가 있습니다). "XXXX"를 입력하고 사용자가 내 확장 프로그램의 컨텍스트 메뉴를 클릭하면 "YYYY"로 변경하려고합니다. 크롬 확장 프로그램의 iframe 콘텐츠를 읽으십시오.

나는 나의 content.js에 있지만 도움이

$('#iframe_id').contents().find('input#input_id').val('YYYY') 
(or) 
window.frames['iframe_id'].document.getElementId('input_id').value 

를 사용하여 입력 상자의 값을 얻기 위해 노력했다.

console.log($('#iframe_id')) 

콘솔에서 iframe 개체를 인쇄하지만 iframe 문서 콘텐츠를 가져올 수 없습니다. 이 방법은 Chrome 확장 프로그램에 삽입 된 iframe 콘텐츠를 가져 오거나 수정하는 올바른 방법입니까? 또는 크롬에서 여기에 뭔가 빠졌습니다. * API

이 문제를 해결하는 방법에 대한 모든 정보가 도움이 될 것입니다.

TIA, Jagadeesh

+0

iframe을 사용하는 이유는 무엇입니까? 주어진 정보를 기반으로 솔루션을 복잡하게 만드는 것으로 보입니다. –

+0

내가 무엇을하라고 제안 했습니까? 이것에 대한 몇 가지 포인터 – Jagadeesh

+0

iframe에서 가져 오려고하는 콘텐츠는 무엇입니까? 어쩌면 다른 방법으로 데이터를 얻을 수 있습니다. iframe 처리는 항상 고통스런 일입니다. –

답변

0

마이크 그레이스 (Mike Grace)가 언급했듯이 iframe 대신 html을 삽입하고 웹 페이지에서 작동 할 수 있도록 CSS를 구성했습니다. 이것은 장기적으로 더 나은 접근 방법이 될 것입니다.

0

내가 iframe이와 최상위 페이지의 도메인과 프로토콜이 일치하지 않기 때문에이 문제가 생각합니다. 이것은 페이지 보안 제한 사항입니다. 이 문제를 설명하는 경우 iframe postMessage API를 사용하여 제한 사항을 해결할 수 있습니다.

+0

manifest.json 파일에서 크로스 원점 권한을 이미 사용했기 때문에 크롬 확장에 문제가 있다고 생각하지 않습니다. 기타 http://developer.chrome.com/extensions/xhr.html – Jagadeesh

관련 문제