Seitendomänenbeziehung :
Die Hauptseite a.html gehört zur Domain A: www.taobao.com
Die iframe-Seite b.html gehört zur Domäne B: www.alimama.com und geht von der Adresse aus: http://www.alimama.com/b.html
Realisierungseffekt :
Die Seite a.html unter dem A-Domänennamen wird über einen Iframe in die Seite b.html unter dem B-Domänennamen eingebettet. Da die Breite und Höhe von b.html unvorhersehbar sind und sich ändern können, muss der Iframe in a.html geändert werden adaptiv dimensioniert sein.
Art des Problems:
js hat ein Problem mit dem domänenübergreifenden Iframe-Zugriff, denn um die Höhe und Breite des Iframes in a.html zu steuern, müssen Sie zunächst die Größe von b.html lesen. A und B gehören nicht zur gleichen Domäne. Aus Sicherheitsgründen ist der domänenübergreifende Zugriff des Browsers auf js begrenzt und die Höhe und Breite von b.html kann nicht gelesen werden.
Lösung:
Einführung der Proxy-Seiten c.html und a.html, die zur selben Domäne A gehören. c.html ist eine gute Zwischen-Proxy-Seite, die unter Domäne A bereitgestellt wird. Angenommen, die Adresse von c.html lautet: www.taobao.com/c.html , der für das Lesen verantwortlich ist. Rufen Sie die Breiten- und Höhenwerte in location.hash ab und legen Sie dann die Breite und Höhe des Iframes in a.html in derselben Domäne fest.
Der Code lautet wie folgt:
ein.html-Code
Zunächst wird b.html über iframe in a.html eingeführt
<iframe id=“b_iframe“ height=“0″ width=“0″ src=“http://www.alimama.com/b.html“ frameborder=“no“ border=“0px“ marginwidth=“0″ marginheight =“0″ scrolling=“no“allowtransparency=“yes“ ></iframe>
b.html-Code
<script type="text/javascript">
var b_width = Math.max(document.documentElement.clientWidth,document.body.clientWidth);
var b_height = Math.max(document.documentElement.clientHeight,document.body.clientHeight);
var c_iframe = document.getElementById("c_iframe");
c_iframe.src = c_iframe.src+“#“+b_width+“|“+b_height;
}
</script>
<!–js liest die Breite und Höhe von b.html und setzt die gelesene Breite und Höhe in den Hash des src der Zwischen-Proxy-Seite c.html in derselben Domäne wie a.html–>
<iframe id=“c_iframe“ height=“0″ width=“0″ src=“http://www.taobao.com/c.html“ style=“display:none“ ></iframe>
c.html-Code
<script type="text/javascript">
var b_iframe = parent.parent.document.getElementById("b_iframe");
var hash_url = window.location.hash;
var hash_width = hash_url.split("#")[1].split("|")[0]+"px";
var hash_height = hash_url.split(“#“)[1].split(“|“)[1]+“px“;
b_iframe.style.width = hash_width;
b_iframe.style.height = hash_height;
</script>
Der Iframe in a.html kann an die Breite und Höhe von b.html angepasst werden.
Nach dieser Idee können auch andere ähnliche domänenübergreifende js-Betriebsprobleme gelöst werden.
Originaltext: http://ued.alimama.com/?p=197