2012-10-06 5 views
0

안녕하세요 여러분, append를 사용하여 iframe을 페이지에 추가하려고합니다. Firefox에서는 빈 iframe을 추가하지만 크롬에서는 정상적으로 작동합니다. 빈 iframe은 windowLocation이 window.location 인 경우에만 추가됩니다. 다른 URL로 변경하면 정상적으로 작동합니다.변수 src를 사용하여 jquery로 iframe 추가하기

$("#button").click(function() { 
var windowLocation = window.location; 
$("body").append('<iframe id="fullFrame" width="1000" height="1000"></iframe>'); 
$("#fullFrame").attr("src", windowLocation); 
}); 
+0

무한한 임베딩 루프를 만들려고합니다. – jfriend00

답변

0

저에게 이것은 재귀를 만드는 것처럼 보입니다. 프레임 셋에 대한 몇 가지 구버전의 스펙에 따르면 그러한 프레임은 비어있는 것으로 취급되어야합니다 : http://www.w3.org/TR/WD-frames-970331#nesting

아마도 Firefox가이 동작을 구현합니다.

+0

루프를 작성해야하는 이유는 무엇입니까? 기본 문서에서 문서의 iframe을 작성하지 않았습니까? 다른 iframe과 다를 수 없습니다. –

+0

죄송합니다. 실제로 iframe이 자동으로 삽입 될 때까지 재귀를 생성하지는 않지만 스펙에 따르면 URL에 관한 것입니다. 따라서 Firefox는 사용자 액션에 의해 프레임이 삽입되었다는 사실을 신경 쓰지 않을 것입니다. – ndm

+0

방금 ​​document.location.hostname으로 테스트하여 내 도메인 이름을 반환하지만 여전히 비어있는 iframe입니다. –

0

자신의 웹 페이지 사본을 왜 포함하고 있는지 묻는 사람이있을 것입니다. 이것은 브라우저가 막으려 고 시도 할 수있는 일종의 무한 중첩 문제를 일으킬 수 있습니다. iframe 자체는 자체에 내장되어 있으며 코드 나 브라우저가 이러한 상황을 방지하지 않는 한 모든 메모리 나 다른 리소스가 모두 소모 될 때까지 멈추지 않습니다. 코드를 정리에 관해서는

, 나는이 코드로 변경 제안 :이 두 가지를 변경

$("#button").click(function() { 
var windowLocation = window.location.href; 
$("body").append('<iframe id="fullFrame" src="' + windowLocation + '"width="1000" height="1000"></iframe>'); 

}); 

. 먼저 위치 개체의 href 속성을 사용하여 URL을 얻은 다음 두 번째로 .src 속성이 이미있는 iframe을 만들고 삽입합니다.

+0

답변 해 주셔서 감사합니다. 내 코드는 실제로 이렇게 보였다. 그러나 iframe을 추가 한 후 특성을 추가하는 stackoverflow에서 누군가를 보았다. 어쨌든 이것은 여전히 ​​작동하지 않습니다. 내 프로젝트는 매우 구체적이어서 내가 이것을하고있다. –

+0

@ChristianIvanov - 당신은 무한한 임베딩 문제를 이해하지 못하는 것 같습니다. 현재 문서에 현재 문서를 포함하려고 시도하고 있습니다. iframe 내부에서로드되면 iframe에서 문서가 다시 자체적으로 포함됩니다. iframe이로드되면 자체적으로 자체적으로 포함하려고 시도하며, 강제로 임베딩을 중지하거나 리소스가 부족해질 때까지 멈추지 않습니다. – jfriend00

+0

이것은 주 문서에서 버튼을 누를 때 발생합니다. iframe 내의 iframe은 iframe의 버튼을 다시 누를 때만 발생해야합니다. 이것은 일어나지 않습니다. 빈 iframe을 삽입하고 있으며 iframe 루프가있는 경우 Chrome에서 작동하지 않았을 것입니다. –

관련 문제