2012-05-15 5 views
2

javascript를 사용하여 div에 iframe을 삽입해야합니다. greasemonkey 스크립트 (greasemonkey는 자바 스크립트 만 허용)에서 코드를 사용할 수 있도록 자바 스크립트로 작성해야합니다.자바 스크립트를 사용하여 div로 Iframe 삽입 - Greasemonkey 용

greasemonkey 스크립트는 AOL의 검색 창을 다양한 웹 사이트에 삽입합니다. 아래에 작업중인 HTML 코드를 포함 시켰으므로 최종 결과가 어떻게 작동하는지 테스트 해 볼 수 있습니다. 내가 자바 스크립트로 작성하고 필요 그리스 몽키의 해당 HTML 코드 작업을 할 필요가

<div style="overflow: hidden; width: 564px; height: 43px; position: relative;"> 
<iframe src="http://aol.com" style="border: 0pt none ; left: -453px; top: -70px; position: absolute; width: 1440px; height: 775px;" scrolling="no"></iframe> 
</div> 

: 여기

내가 HTML로 작성해야 할 일을 정확히.

var makeIframe = document.createElement("iframe"); 
makeIframe.setAttribute("src", "http://aol.com"); 
makeIframe.setAttribute("scrolling", "no"); 
makeIframe.setAttribute("border", "0pt"); 
makeIframe.setAttribute("border", "none"); 
makeIframe.setAttribute("left", "-453px"); 
makeIframe.setAttribute("top", "-70px"); 
makeIframe.setAttribute("position", "absolute"); 
makeIframe.setAttribute("width", "1440px"); 
makeIframe.setAttribute("height", "775px"); 
makeIframe.setAttribute("scrolling", "no"); 

var makediv = document.createElement("div"); 
makediv.setAttribute("height", "43px"); 
makediv.setAttribute("width", "564px"); 
makediv.setAttribute("position", "relative"); 
makediv.setAttribute("overflow", "hidden"); 

이미 iframe을 삽입하는 두 방법을 알고 또는 사이트의 소스 코드에 DIV를 삽입 : 여기 (이하 "의사 코드"아래에있는 내 마지막 질문으로) 지금까지있어 무엇인가 나는이 작업을 수행하여, 삽입해야합니다 내가 할 방법을 알아낼 수 없습니다 무엇

var getRef = document.getElementById("div-id-to-insert-element-before"); 
var parentDiv = getRef.parentNode; 
parentDiv.insertBefore(iframe OR div, getRef); 

는 사업부에 iframe을 작성하고 소스 코드에 그 사업부를 삽입하는 방법입니다. 바로 마지막 코드 스 니펫은 div 또는 iframe을 소스 코드에 삽입하기 위해 작동하지만 div 안에 iframe이 있어야하며 해당 div가 소스 코드에 삽입되도록해야합니다 (마지막 코드 스 니펫 사용).

아이디어가 있으십니까?

답변

8

1 당신은 당신이 원하는 곳으로 makediv를 삽입보다는

makediv.innerHTML = '<iframe src="http://aol.com" style="border: 0pt none ;'+ 
        'left: -453px; top: -70px; position: absolute;'+ 
        'width: 1440px;'+ 
        'height: 775px;" scrolling="no"></iframe>'; 

,

var getRef = document.getElementById("div-id-to-insert-element-before"); 
var parentDiv = getRef.parentNode; 
parentDiv.insertBefore(makediv, getRef); 
element.appendChild

makediv.appendChild(makeIframe); 

2를 사용하거나이 같은 사업부에 HTML로 iframe 대응을 추가 할 수 있습니다

업데이트 :

012 3,516, 당신은 setAttribute 기능과 스타일을 설정할 수 없습니다

,

var makeIframe = document.createElement("iframe"); 
makeIframe.setAttribute("src", "http://aol.com"); 
makeIframe.setAttribute("scrolling", "no"); 
makeIframe.style.border = "none"; 
makeIframe.style.left = "-453px"; 
makeIframe.style.top = "-70px"; 
makeIframe.style.position = "absolute"; 
makeIframe.style.width = "1440px"; 
makeIframe.style.height = "775px"; 

var makediv = document.createElement("div"); 
makediv.style.height = "43px"; 
makediv.style.width = "564px"; 
makediv.style.position = "relative"; 
makediv.style.overflow = "hidden"; 
+0

그 제안을 모두 실제로 어떤 이유로, 사업부에 iframe이를 얻기 위해 작업하는 동안은 iframe이는 중 전체 크기 (이를 "폭발"를 보여줍니다 div). – Learning

+0

즉, div에는 iframe이 포함되어 있지 않으므로 오버플로를 숨길 수 있습니다. HTML 코드는 필요한대로 정확하게 작동하지만 전체 iframe 전체 페이지가 표시됩니다. iframe 페이지의 왼쪽 상단이 div가 페이지에 삽입 된 곳의 왼쪽 상단에 정렬되어 표시됩니다. 그러면 iframe이 div 안에 있음을 알 수 있습니다. div는 일반 HTML로 작성된 동일한 코드를로드 할 때와 같은 방식으로 iframe의 전체 크기 표시를 중단하지 않습니다. 아마도 그리스 몽키 결함일까요? 아니면 JS 코드에 문제가 있습니까? – Learning

+0

@ 로버트, 처음에는 볼 수 없었지만 코드에 오류가 하나 더있어'setAttribute' 함수로 요소의 스타일을 설정할 수없고 업데이트 된 답변을 다시 볼 수 있습니다. – ocanal

관련 문제