2015-05-18 5 views
0

Я знаю, что пытаюсь прокрутить сам iframe, чтобы не идти туда, и вместо этого я должен прокручивать div. Дело в том, что это не сработает. Что не так с этим кодом? Это вещь google? Я использую пользовательский поиск, поэтому он отображается в кадре, но я знаю, что Google и фреймы не любят играть друг с другом.iframe внутри div. прокрутка div не работает

HTML

<div id="googleframe"><iframe id="googleseo" src="http://www.google.com/custom?q=hey+there&btnG=Search"></iframe></div> 

JS

var seoFrame = document.getElementById('googleseo'); 
seoFrame.src = googleSearch; 
seoFrame.onload = function() { 
    document.getElementById('googleframe').scrollTop = 300; 
    } 
} 
+0

Я думаю, что это не работает из-за той же политики домена. Существуют обходные пути [описанные в этом вопросе SO] (http://stackoverflow.com/questions/1192228/scrolling-an-iframe-with-javascript#comment6499395_1229879). – A1rPun

ответ

0

Это связано с scrollTop ссылки на IFRAME, а не тело в кадре. В самом iframe нет полосы прокрутки, это документ внутри нее.

Fiddle этого работает http://jsfiddle.net/ebzxzgmo/

var seoFrame = document.getElementById('googleseo'); 
var elem = (seoFrame.contentDocument||seoFrame.contentWindow.document).documentElement; 
elem.getElementsByTagName('body')[0].scrollTop = 300; 

Обратите внимание, что это запрашивающий jsfiddle. Браузеры блокируют доступ к DOM iframes из других доменов.

Ссылка для прокрутки междоменное: Scroll a cross-domain child iframe?

+0

Что такое оператор двойной трубы? – SaintCad

+0

Это операция или операция. В зависимости от браузера документ iframe хранится в другом месте. Таким образом, 'seoFrame.contentDocument || seoFrame.contentWindow.document' говорит:« если определено, используйте .contentDocument ИЛИ используйте .contentWindow.document » –

0

Это был вопрос CSS. Для прокрутки iframe не хватило времени. Это была такая же высота, как и мой div, поэтому я сделал это дольше, и он отлично работает.

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