2013-04-03 4 views
4

На моей веб-странице встроен iFrame, который использует сторонний инструмент на моей веб-странице, что означает, что URL-адрес из iFrame происходит из другого места.Обнаружение полос прокрутки в iFrame JS

Мне нужно определить представление полосы прокрутки в окне iFrame при изменении размера страницы, а затем выполнить задачу после ее обнаружения.

Я пробовал различные решения, которые не были успешными.

Возможно ли это?

Большое спасибо!

+0

почему не установить скроллбар = да и изменяемыми = да в IFrame тега? , это делает панель прокрутки дисплея iframe на вашем iframe, если контент превышает нормальный vi РЭБ! – goseo

+0

Спасибо за ввод, но это не совсем то, что я ищу. Я надеюсь обнаружить полосу прокрутки в iFrame, когда содержимое превышает нормальный вид. –

+0

Вы не можете получить доступ к документу, загруженному из другого домена, в JavaScript - http://en.wikipedia.org/wiki/Same_origin_policy – CBroe

ответ

1

Это первое, что приходит на ум: http://jsfiddle.net/matias/hhcKn/

просто пример кода!

HTML:

<div id="body"></div> 

JS:

var $iframe = $("<iframe></iframe>").appendTo("#body"); 
var iframe = $iframe[0]; 
var doc = iframe.document; 

//test this 
var content = "<h1>Hello world</h1><br><p>more content!</p>"; 

//and then this 
//var content = "<h1>Hello world</h1><br><br><br><br><br><p>more content!</p>"; 

if(iframe.contentDocument){ 
    doc = iframe.contentDocument; 
} 
else if(iframe.contentWindow){ 
    doc = iframe.contentWindow.document; 
} 
doc.open(); 
doc.writeln(content); 
doc.close(); 


//this is the part that might interest you 
var div_height = $("#body").height(); 
var iframe_height = $("iframe").contents().height(); 

if(iframe_height > div_height) alert("scrollbars present"); 

CSS:

body{ 
    border: 1px solid red; 
} 

iframe{ 
    border: none; 
} 
1
<iframe src="111.html" id="iframeid" height="300" width="800"></iframe> 

<script type="text/javascript"> 
function resizeIFrame(){ 
    $("#iframeid").attr("height", $("#iframeid").contents().height()); 
} 
setInterval("resizeIFrame()", 500) 
</script> 
+0

Вы, сэр, легенда. Этот однострочный лайнер отлично работает и перекрестный браузер (в том числе iPhone). –

+0

Это все еще зависит от происхождения контента в одном домене. – Steiny

Смежные вопросы