2014-06-23 2 views
2

기본 크롬 확장을 빌드하려고합니다. 간단한 선택 메뉴로 팝업이 열리 며, 변경시 자바 스크립트가 실행됩니다. 간단한 권리? 크롬 확장 - 자바 스크립트로 내용 변경

<script src="popup2.js"></script> 
    <select id="MySelectMenu" onchange="newSrc()"> 
        <option value="http://electro.piratefm.ro/popup.html" >Electro</option> 
        <option value="http://rap.piratefm.ro/popup.html" >Rap</option> 
        <option value="http://dub.piratefm.ro/popup.html" >Dub</option> 
    </select> 

    <iframe src="http://electro.piratefm.ro/popup.html" frameborder="0" width="302" height="75" style="float:left" id="MyFrame"></iframe> 

물론

음악 재생이 시작하지만이 옵션을 변경할 때 그냥 삭제되지 않습니다, 또는 변경,

내가 아이콘을 클릭
function newSrc(){ 
document.getElementById('MyFrame').innerHTML= '<iframe src="#" width="100" height="100"></iframe>'; 
} 

는 팝업이 좋은 시작 popup2.js iframe의 내용

+1

읽고 _Please_ [질문 방법] (http://stackoverflow.com/help/how-to-ask) . 그런 다음 질문의 관련없는 부분 ("여기 거래가 있습니다", "halp pls", "Sorry"등)를 편집하고 나중에 피하십시오. – Xan

답변

2

innerHTML은 요소 자체가 아니라 자식 만 변경합니다.

수정하려면 컨테이너에 포장하십시오.

<div id="MyFrameContainer"> 
    <iframe src="http://electro.piratefm.ro/popup.html" frameborder="0" width="302" height="75" style="float:left" id="MyFrame"></iframe> 
</div> 

과 별개로

function newSrc(){ 
    document.getElementById('MyFrameContainer').innerHTML= '<iframe src="#" width="100" height="100"></iframe>'; 
} 

, not allowed by the default CSP 인 인라인 JS 등의 원소 개수에 onchange의 용도.

당신은 당신의 popup2.js에서 동적 이벤트 핸들러를 제거하고 결합해야합니다

document.addEventListener('DOMContentLoaded', function(){ 
    document.getElementById('MySelectMenu').addEventListener('change', newSrc); 
}); 
+0

여전히 작동하지 않습니다 ... –

+0

다음에 달성하려는 목표를 명확하게 설명하십시오. – Xan

+0

메뉴 팝업을 만들려고하는데 옵션을 선택하면 특정 iframe이 배경 페이지에서 열립니다. 그것은 작동하지 않았으므로 먼저 팝업에서 작동하도록했습니다. 기본적으로 내가 원하는 것은 메뉴에서 옵션을 선택하면 url을 선택 항목의 값으로 사용하는 iframe이 이미 열려있는 대신 열립니다. 그 일을하는 법은 알고 있지만 작동하지 않아서 뭔가 간단하게 시도해 보았습니다. 프레임을 열고 뭔가가 선택되면 닫습니다. –

관련 문제