2010-12-16 4 views
0

Ich möchte eine externe Seite verlinken oder einbetten, indem ich zu einem bestimmten Punkt scrollen. Ist das möglich, oder verhindern Cross-Browser-Sicherheiten das?Externe Seite - geben Sie JS Anweisungen?

Eine Abhilfe, die ich in Betracht gezogen habe, ist die iframe innerhalb eines div erstellen, die iframe eine negative Marge geben und dann overflow: hidden; der Behälter div.

Danke.

Antwort

1

Eine mögliche Lösung könnte sein, JavaScript zu verwenden, um die Seite zu scrollen. Wenn sich die einzubettende Seite jedoch in einer anderen Domäne befindet, können Sie nicht mit JavaScript auf ihren Inhalt zugreifen, wenn sie sich in einem Iframe befindet (aufgrund der same origin policy). Wenn es jedoch auf der gleichen Domäne wie der Host-Seite ist, sollten Sie in der Lage sein, um es JavaScript Zugriff verwenden und blättern mit der window.scrollTo(x,y) Methode oder ähnlich (siehe this page on MDN).

Wenn die eingebettete Seite über einen benannten Anker (<a name="blah">) oder ein Element auf Blockebene mit einer bestimmten ID (<div id="blah">) an der Stelle verfügt, zu der Sie blättern möchten, können Sie eine Verknüpfung herstellen oder einbetten Verwenden Sie eine URL wie http://example.com/page#blah und es wird blättern automatisch blah. Dies ist nicht der Same Origin Policy, so dass Sie so etwas wie <iframe src="http://example.com/page#blah"></iframe> und der Rahmen automatisch zu blah gescrollt werden tun können, auch wenn es nicht auf der gleichen Domäne wie der Wirt ist.

Die „iframe mit negativer Marge“ Lösung, die Sie arbeiten erwähnt könnte, aber das könnte schwierig sein, wahrscheinlich zu Problemen führt, zu implementieren und zu würde, vor allem, wenn Sie die volle Cross-Browser-Kompatibilität mögen.

+0

Irgendwie verpasste ich die Lektion über Anker Verknüpfung zu einem Knoten mit einer ID. Das ist großartig. – Matrym