在我的脚本中,用户在主窗口中输入文本,然后使用我在下面附加的控件,在第一个窗口(由用户)输入的文本被传输到第二个窗口。 在第二个窗口中,用户输入的文本必须闪烁。 我的问题是:如何在第二个窗口中使文本闪烁?
if (currentElementContent.length)
{
var newWindow = window.open("ex.html","Nuova finestra","width=300,height=300 ,toolbar=yes, location=no,status=yes,menubar=yes,scrollbars=no,resizable=no");
newWindow.document.write(currentElementContent);
}
答案 0 :(得分:1)
一个好方法是使用postMessage
API,它适用于最近的浏览器(我现在测试过Chrome。)
newWindow.postMessage("The string you want to pass", "*");
“您要传递的字符串”:您想要传递的对象是什么,所有浏览器现在只支持字符串。
* :是原产地;从这个消息是谁?
在另一个窗口中注册message
事件。
function listener(event)
{
// e.origin => origin
// e.data => is the object (string) passed to it
document.getElementById('testi').innerHTML += event.data + "<br/>";
}
if (window.addEventListener)
{
window.addEventListener("message", listener, false);
}
else
{
attachEvent("message", listener);
}
IE使用event.data :是否已传递的字符串
event.origin :是消息的来源
attachEvent
。
我很确定jQuery能够以更好的方式为你做到这一点,但无论如何,让你的文本闪烁你可以使用一个计时器(间隔)每隔X
毫秒使其可见/不可见。
在你的ex.html
开始时,每250毫秒(或更少或更多)的间隔将改变跨度(或div,如果你想要或你想要的一切)的可见性
示例:
<span id="text">Text</span>
然后脚本将是
var text = document.getElementById('text');
var isVisible = true;
setInterval(function()
{
if (isVisible) {
text.style.display = "none";
} else {
text.style.display = "";
}
isVisible = !isVisible;
}, 250);
setInterval(function, repeat)
功能:每隔重复毫秒执行代码块。
重复:两次执行之间的等待时间是毫秒。
一个工作示例:JSFiddle