Relación de dominio de página :
La página principal a.html pertenece al dominio A: www.taobao.com
La página iframe b.html pertenece al dominio B: www.alimama.com, asumiendo la dirección: http://www.alimama.com/b.html
Efecto de realización :
La página a.html bajo el nombre de dominio A está incrustada en la página b.html bajo el nombre de dominio B a través de un iframe. Dado que el ancho y el alto de b.html son impredecibles y pueden cambiar, el iframe en a.html debe modificarse. tener un tamaño adaptable.
Naturaleza del problema:
js tiene un problema con el acceso al iframe entre dominios, porque para controlar la altura y el ancho del iframe en a.html, primero debe leer el tamaño de b.html. A y B no pertenecen al mismo dominio. Por razones de seguridad, el navegador crea js. El acceso entre dominios es limitado y no se pueden leer el alto y el ancho de b.html.
Solución:
Presentación de páginas proxy c.html y a.html pertenecen al mismo dominio A. c.html es una buena página proxy intermedia proporcionada en el dominio A. Supongamos que la dirección de c.html es: www.taobao.com/c.html , que es responsable de leer Obtenga los valores de ancho y alto en ubicación.hash, y luego establezca el ancho y alto del iframe en a.html en el mismo dominio.
El código es el siguiente:
un código .html
Primero, b.html se introduce a través de iframe en a.html
<iframe id=”b_iframe” altura=”0″ ancho=”0″ src=”http://www.alimama.com/b.html” frameborder=”no” border=”0px” marginwidth=”0″ marginheight =”0″ desplazamiento=”no” enabletransparency=”sí” >>iframe>
código b.html
<tipo de script="texto/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; //http://www.taobao.com/c.html#width|height”
}
</script>
<!–js lee el ancho y el alto de b.html y establece el ancho y el alto de lectura en el hash del src de la página proxy intermedia c.html en el mismo dominio que a.html–>
<iframe id=”c_iframe” altura=”0″ ancho=”0″ src=”http://www.taobao.com/c.html” estilo=”display:none” >>iframe>
código c.html
<tipo de script="texto/javascript">
var b_iframe = parent.parent.document.getElementById("b_iframe");
var hash_url = ventana.ubicación.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>
El iframe en a.html se puede adaptar al ancho y alto de b.html.
Otros problemas similares de operación entre dominios js también se pueden resolver de acuerdo con esta idea.
Texto original: http://ued.alimama.com/?p=197