Abra una nueva ventana en javaScript e informe DOMException no detectado: bloqueó un marco con origen "nulo" para que no acceda a una cruz

Abra una nueva ventana en javaScript e informe DOMException no detectado: bloqueó un marco con origen "nulo" para que no acceda a una cruz

Motivo del error : las operaciones entre páginas implican el concepto de dominio (origen) y el significado del error es: Error de seguridad no detectado: una página marco con un dominio nulo no puede acceder a otra página con un dominio nulo. Cuando el código se está ejecutando, se abre directamente con un navegador localmente, y la barra de direcciones es la página de file: ///, por lo que solo necesita cambiarlo a localhost para acceder a él.

El atributo de nombre de la ventana puede establecer o devolver una cadena que almacena el nombre de la ventana.

DOMException no detectada: bloqueó un marco con origen "nulo" para que no acceda a un marco de origen cruzado.

El método "Document_write ()" sobrescribirá la página

Análisis del uso de document.write () en JS y el motivo del vaciado

Caso 1

 

Caso 2

js.html código de página

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javaScript中打开一个新窗口报错window.open</title>
<style type="text/css">
input[type=button] {
	background-color: #8E388E;
	border: 0px solid #8E388E;
	color: #fff;
	width: 160px;
	height: 40px;
	border-radius: 6px; /*把边框做成圆角*/
}

</style>
<script type="text/javascript">

var myWindow = null;
function openWin1() {
	var windowTitle = "测试页面";
	myWindow = window.open('', 'testWindow', 'width=300,height=300');
	setTimeout(function(){
		myWindow.document.write("<p>窗口名称为: " + myWindow.name + "</p>");
		myWindow.document.title = windowTitle;
	}, 2000) ;
}

var myWindow2 = null;
function openWin2() {
	var windowTitle = "测试页面2";
	myWindow2 = window.open('js2.html', 'testWindow2', 'width=500,height=300');
	setTimeout(function(){
/*
w3school的官方说明:您只能在HTML输出中使用document.write。如果您在文档加载后使用该方法,会覆盖整个文档。
避免方法:
1.在onload之前使用document.wriet()方法;
2.避免在onclick()事件中使用,可用console或innerHTML代替
*/
		//document.write()会覆盖掉原来js2.html页面中的内容
// 		myWindow2.document.write("<p>窗口名称为: " + myWindow2.name + "</p>");
		myWindow2.document.getElementById("myDiv").innerHTML = "窗口名称为: " + myWindow2.name;
		myWindow2.document.title = windowTitle;
	}, 1000) ;
}
</script>
</head>
<body style="background-color: #CCE8CF;">
<h2>javaScript中打开一个新窗口报错window.open</h2>
<input type="button" value="打开我的窗口1" onclick="openWin1()" />
<input type="button" value="打开我的窗口2" onclick="openWin2()" />
<div id="div1" style="background-color: Wheat; height: 200px;">
</div>
</body>
</html>

js2.html código de página

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>这是一个简单的测试页面哦</title>
</head>
<body>
<h1>这是一个简单的测试页面哦</h1>
<div id="myDiv" style="background-color: #D8BFD8; height: 200px;">
</div>
</body>
</html>

¡Puedes probarlo tú mismo!

Supongo que te gusta

Origin blog.csdn.net/czh500/article/details/114994846
Recomendado
Clasificación