【问题标题】:Pass values from the main window to another window将值从主窗口传递到另一个窗口
【发布时间】:2018-11-11 14:22:05
【问题描述】:

在我的脚本中,用户在主窗口中输入文本,然后使用我在下面附加的控件,将(由用户)在第一个窗口中输入的文本传输到第二个窗口。 在第二个窗口中,用户输入的文本必须闪烁。 我的问题是:如何使第二个窗口中的文本闪烁?

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);    
}

【问题讨论】:

  • 你考虑过localStorage API吗?
  • 你需要一个脚本来使文本闪烁(例如,做一个动画)——假设你不打算使用早已弃用的 <blink> 标签。由于新窗口是同一个域并且您拥有窗口句柄,因此您可以使用任一窗口中的脚本。为了设计清晰,我可能会将脚本加载到可以运行动画的新窗口中(创建一个脚本标签并插入它)。您的问题是否更像是“如何通过动画使文本闪烁”?还是我如何在另一个窗口中修改内容?您正在寻求哪个问题的帮助?
  • 我无法使第二个窗口中的文本闪烁,我不知道该怎么做。我重复一遍,用户从第一个窗口插入文本,然后传递到第二个窗口。老实说,我并不关心伟大的技术即使眨眼也可以,我有兴趣解决问题。
  • 您想知道如何将数据传递到另一个窗口,或者只想知道如何让文本闪烁?

标签: javascript


【解决方案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);
}

event.data:是已经传递的字符串

event.origin:是消息的来源

attachEvent 被 IE 使用。


如何让文字JSFiddle闪烁

我很确定 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)

function:是每repeat毫秒执行的代码块。

repeat:是两次执行之间等待的毫秒数。

一个工作示例:JSFiddle

【讨论】:

    猜你喜欢
    • 2018-12-11
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    相关资源
    最近更新 更多