相关疑难解决方法(0)

如何在另一个窗口中检查打开的URL?

这是我的上一个问题的后续操作如果窗口尚不存在则打开一个窗口 基本上,我现在保留一个页面打开的所有窗口引用的列表,并且只允许它们被打开还没开放.然后一个潜在的问题让我感到震惊 - 用户当然可以关闭原始窗口,然后再次打开它,从而丢失窗口引用列表.

是否可以在浏览器中打开窗口,检查特定的URL?

编辑:在这里(以及另一个问题)有很多有用的评论后,这是应用程序启动器的最终代码.本质上,它尝试使用适当的名称获取打开窗口的位置.如果这导致异常(由于隐私问题),则判断应用程序已加载.如果它是"about:blank",那么它是一个新窗口.这适用于Firefox,IE7和谷歌浏览器.感觉很脏......

var g_urlarray = [];

Array.prototype.has = function(value) {
    var i;
    for (var i in this) {
        if (i === value) {
            return true;
        }
    }
    return false;
};


function launchApplication(l_url, l_windowName)
{
    var l_width = screen.availWidth;
    var l_height = screen.availHeight;
    var winRef;

    var l_params = 'status=1' +
        ',resizable=1' +
        ',scrollbars=1' +
        ',width=' + l_width +
        ',height=' + l_height +
        ',left=0' +
        ',top=0';
    if (g_urlarray.has(l_url)) {
        winRef = g_urlarray[l_url];
    }
    if (winRef == null …
Run Code Online (Sandbox Code Playgroud)

javascript windows popup

5
推荐指数
1
解决办法
1万
查看次数

检查窗口打开

var windowUrl = "";
var windowName = "mywin";
var w = window.open(windowUrl, windowName, windowSize);
w.document.write(html);
w.document.close();
Run Code Online (Sandbox Code Playgroud)

这与onclick有关.如果窗口存在,我不想写或关闭甚至打开(也许重新聚焦).我找到了一些例子,但它们似乎并没有"起作用"(或者我认为我需要它.)

javascript

1
推荐指数
1
解决办法
2233
查看次数

检查窗口是否已从非父窗口打开(chrome 扩展)

我正在制作一个 Chrome 扩展程序。单击 中的按钮popup.html将打开一个新窗口并加载feedback-panel.html.

这是可行的,但是,单击时,我想检查窗口是否已经打开,如果是,则将焦点放在它而不是创建一个新窗口。

JavaScript window.open 仅当窗口尚不存在时看起来很有希望,但它依赖于在打开窗口时将打开的窗口存储为父页面上的变量,并在打开新窗口之前检查这些窗口。这对我不起作用,因为父窗口 ( popup.html) 经常会自行关闭并重新打开,并且我会丢失变量。

我尝试实现相同的想法,但将窗口变量存储在 with 中chrome.storage,因为它允许您存储对象。好吧,它确实可以让您存储对象,但它首先序列化它们,因此窗口变量丢失了它的所有功能,我最终得到

result.feedbackPanel.focus() 不是函数

这是我的尝试:

function openFeedbackPanel(){
    chrome.storage.local.get('feedbackPanel', function (result) {
        console.log( result.feedbackPanel); // logs window object sans all functions
        if(result.feedbackPanel && ! result.feedbackPanel.closed){
            try{
                result.feedbackPanel.focus();
            }
            catch(error){
                chrome.storage.local.remove('feedbackPanel', function () {
                });
                createFeedbackPanel();
            }
        }
        else{
            createFeedbackPanel();
        }
    });
}
function createFeedbackPanel(){
    var win =  window.open('feedback-panel.html', 'Feedback', 'width=935, height=675');
    console.log(win); // logs full object as expected 
    chrome.storage.local.set({"feedbackPanel": win});
} …
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-chrome window google-chrome-extension

0
推荐指数
1
解决办法
3331
查看次数