向控制台写入未链接的html



我的问题如下:是否有可能从。js文件到非链接HTML文件的控制台写一些东西?

所以我有以下设置:当点击html_1(index.html)上的按钮时,它打开一个新窗口,这个窗口有一个名为html_2(numero.html)的HTML。我想当弹出窗口打开写的东西(与onload)在index.html的控制台中。两个HTML文件都链接到各自独立的.js文件(index.js和number .js)。我想从number .js到index.html写入控制台,尽管它们没有链接。

这可能吗?

我现在所拥有的。

HTML指数<button onclick="newWindow();" id="ventana" >ACIERTA NUMERO</button>打开新窗口

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="Stylesheet1.css">
<script type="text/javascript" src="objectosPredef.js"></script>
<title>Actividad 2</title>
</head>
<body onload="listaPropiedades()">
<div id="listaPropiedades"></div>

<input type="text" id="nombre" placeholder="entra tu nombre" />
<button onclick="crearCookie();">Click</button>
<button onclick="newWindow();" id="ventana" >ACIERTA NUMERO</button>
</body>
</html>

Index.js

function newWindow(url, title, w, h) {
var url = "numero.html";
var title = "";
var w = 300;
var h = 300;
var left = (screen.width / 2) - (w / 2);
var top = (screen.height / 2) - (h / 2);
return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
}

HTML期

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />

<script type="text/javascript" src="numero.js"></script>
<title>count down</title>
</head>
<body onload="windowTimer()">
<div id="random"></div>
<div id="timer"></div>

</body>
</html>

号JS

function windowTimer() {
consoleLog();
var sec = 8;
setInterval(function () {
document.getElementById("timer").innerHTML = sec + " :segundos";

sec--;
if (sec == -1) {
window.close();
}
}, 1000);
}
function consoleLog() {
var x = Math.floor((Math.random() * 11));
document.getElementById("random").innerHTML = "Numero aleatorio: " + x;
}

目前它只是将随机数写入窗口,但它应该进入index.html的控制台日志。我找不到任何与此相关的东西。如有任何帮助,不胜感激。

为了说明我所做的评论,根据问题,我快速地用两个文件index.htmlnumero.html制作了一个小演示。

index . html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index.html</title>
</head>
<body>

<button onclick="newWindow();" id="ventana">ACIERTA NUMERO</button>


<script>
function newWindow( url = "numero.html", title = "", w = 300, h = 300 ) {
var left = (screen.width / 2) - (w / 2);
var top = (screen.height / 2) - (h / 2);
return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
}


let oChannel=new BroadcastChannel( 'numero' );
oChannel.addEventListener('message',(e)=>{
if( e.data.number )console.info('Random Number generated in "numero.html": %s', e.data.number )
else console.info( e.data.data )
});
</script>
</body>
</html>

numero.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Numero.html</title>
</head>
<body>
<div id="random"></div>
<div id="timer"></div>
<script>
document.addEventListener('DOMContentLoaded',()=>{

let oChannel=new BroadcastChannel( 'numero' );

const Log=()=>{
let i=Math.floor( ( Math.random() * 11 ) );
document.getElementById("random").innerHTML = "Numero aleatorio: " + i;
console.info('Numero aleatorio: %d',i);
return i;
};

function windowTimer() {
let sec=8;

setInterval(function () {
if( sec > 0 ){
oChannel.postMessage({data:sec})
document.getElementById("timer").innerHTML = sec + " :segundos";
}else if( sec==0 ) {
oChannel.postMessage({data:'Goodbye'});
window.close();
}

sec--;

}, 1000 );
};

let _random_number=Log();
oChannel.postMessage( { data:'loaded', number:_random_number } );

windowTimer();
})

</script>
</body>
</html>

两个页面必须创建到公共通道的自己的连接-名称是任意的,但必须在两个页面中相同。index页面listens显示子弹出页面numero.html的消息,并显示使用postMessage函数的弹出窗口发送的数据。

最新更新