当前窗口下的弹出窗口 - Chrome

时间:2016-11-03 14:17:36

标签: javascript

我正在尝试在当前浏览器窗口下打开一个弹出窗口以允许幕后维护任务(删除线程按钮)。

删除线程功能正在根据需要工作,除了我似乎无法让弹出窗口显示在主浏览器窗口下。试试“popup.blur();”在Chrome v54上没有成功。有什么建议吗?

(function() { 
    'use strict'; 
    $("a.PreviewTooltip").each(function() { 
       $(this).after("&nbsp;<img data-link='" + $(this).attr('href') + "' title='Ignore this thread' class='inlineimg runIgnore' src='data:image/gif;base64,R0lGODlhEAAQAPcAADFKY0L/QpSlxpStxqWtxqW1xrXO98bO98bW987W1tbe99bn9+fn9+fv7+fv9+f3//f3//f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAEALAAAAAAQABAAAAhlAAMIHEiwoMGDBwkoVCigoQCDBCRIhEDxAQMGAApGlEARgkUGCjISjNjxo4KQGktePImSoACKAGLGVHBA5MCXJk8eqFlQQE6aO20KFLBS506eLkEa3WlAqECZUGMinEq1qlWBAQEAOw%3D%3D' alt='Ignore this thread' border='1'></i> ");
    }); 
    $(".runIgnore").click(function() { 
    var oldHref = $(this).data('link'); 
    var newHref = oldHref; 
    var suffixToIgnore = "/unread"; 
    if (newHref.endsWith(suffixToIgnore)) 
    { 
        newHref = newHref.substring(0, newHref.length - suffixToIgnore.length + 1); 
    } 
        newHref = newHref + "ignore-confirm"; 
        var popup = window.open(newHref, '_blank', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=100, top=500, width=500, height=500, visible=false', '');
        $(popup).load(function() { 
            var ignoreForumSubmitButton = popup.$("input[value='Ignore Thread']"); 
            var ignoreForumForm = ignoreForumSubmitButton.closest("form"); 
            ignoreForumSubmitButton.click(); 
            popup.parent.focus(); 
            popup.blur(); 
            $(popup).unload(function() {} ); 
            setTimeout(function() { popup.close(); }, 100); 
            setTimeout(function() { parent.location.reload(true); }, 100); 
        }); 
    }); 
})(); 

1 个答案:

答案 0 :(得分:0)

在隐藏的iFrame中成功打开弹​​出窗口:

(function() {
    'use strict';
    var iframe;
    function loadIntoFrame(url, callback)
    {
        iframe = document.createElement("iframe");
        iframe.addEventListener("load", callback, false);
        iframe.width = 1;
        iframe.height = 1;
        iframe.id = "childframe";
        iframe.style.visibility = "hidden";
        iframe.src = url;
        document.body.appendChild(iframe);
    }

    function submitIgnoreForm()
    {
        var ignoreForumSubmitButton = $("#childframe").contents().find("input[value='Ignore Thread']");
        var ignoreForumForm = ignoreForumSubmitButton.closest("form");
        ignoreForumSubmitButton.click();

        setTimeout( function() { iframe.parentNode.removeChild(iframe); }, 200);
        setTimeout(function() { location.reload(); }, 100 );
    }

    $("a.PreviewTooltip").each(function() {
       $(this).after("&nbsp;<img data-link='" + $(this).attr('href') + "' title='Ignore this thread' class='inlineimg runIgnore' src='data:image/gif;base64,R0lGODlhEAAQAPcAADFKY0L/QpSlxpStxqWtxqW1xrXO98bO98bW987W1tbe99bn9+fn9+fv7+fv9+f3//f3//f//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAEALAAAAAAQABAAAAhlAAMIHEiwoMGDBwkoVCigoQCDBCRIhEDxAQMGAApGlEARgkUGCjISjNjxo4KQGktePImSoACKAGLGVHBA5MCXJk8eqFlQQE6aO20KFLBS506eLkEa3WlAqECZUGMinEq1qlWBAQEAOw%3D%3D' alt='Ignore this thread' border='1'></i>");
    });

    $(".runIgnore").click(function() {
        var oldHref = $(this).data('link');
        var newHref = oldHref;
        var suffixToIgnore = "/unread";
        if (newHref.endsWith(suffixToIgnore))
        {
            newHref = newHref.substring(0, newHref.length - suffixToIgnore.length + 1);
        }
        newHref = newHref + "ignore-confirm";
        loadIntoFrame(newHref, submitIgnoreForm);

    });
})();