öffnen - javascript window.open popup




Öffnen Sie einen neuen Tab im Hintergrund? (4)

Hier finden Sie ein vollständiges Beispiel zum Navigieren einer gültigen URL auf einem neuen Tab mit Fokus.

HTML:

<div class="panel">
  <p>
    Enter Url: 
    <input type="text" id="txturl" name="txturl" size="30" class="weburl" />
    &nbsp;&nbsp;    
    <input type="button" id="btnopen"  value="Open Url in New Tab" onclick="openURL();"/>
  </p>
</div>

CSS:

.panel{
  font-size:14px;
}
.panel input{
  border:1px solid #333;
}

JAVASCRIPT:

function isValidURL(url) {
    var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;

    if (RegExp.test(url)) {
        return true;
    } else {
        return false;
    }
}

function openURL() {
    var url = document.getElementById("txturl").value.trim();
    if (isValidURL(url)) {
        var myWindow = window.open(url, '_blank');
        myWindow.focus();
        document.getElementById("txturl").value = '';
    } else {
        alert("Please enter valid URL..!");
        return false;
    }
}

Ich habe auch einen Behälter mit der Lösung auf http://codebins.com/codes/home/4ldqpbw

Mit Javascript möchte ich eine neue Seite in einem anderen Tab öffnen, aber auf den aktuellen Tab fokussiert bleiben. Ich weiß, dass ich es so machen kann:

open('http://example.com/');
focus();

Wenn ich dies jedoch in Chrome mache, blinkt die neue Registerkarte kurz, bevor ich zur aktuellen Registerkarte zurückwechsle. Ich möchte das vermeiden.

Die Anwendung ist ein persönliches Bookmarklet und muss nur im aktuellen Chrome funktionieren.


Ich habe genau das gemacht, wonach du gesucht hast. Es ist perfekt in Google Chrome und Opera und fast perfekt in Firefox und Safari. Nicht im IE getestet.

function newTab(url)
{
    var tab=window.open("");
    tab.document.write("<!DOCTYPE html><html>"+document.getElementsByTagName("html")[0].innerHTML+"</html>");
    tab.document.close();
    window.location.href=url;
}

Geige: http://jsfiddle.net/tFCnA/show/

Erklärungen:
Nehmen wir an, es gibt die Fenster A1 und B1 und die Webseiten A2 und B2.
Anstatt B2 in B1 zu öffnen und dann wieder auf A1 zu gehen, öffne ich B2 in A1 und öffne A2 in B1 wieder.
(Eine andere Sache, die es funktioniert, ist, dass ich den Benutzer A2 nicht erneut herunterladen, siehe Zeile 4)

Das Einzige, was Ihnen vielleicht nicht gefällt, ist, dass die neue Registerkarte vor der Hauptseite geöffnet wird.


THX für diese Frage! Funktioniert für mich in allen gängigen Browsern:

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = window.location.pathname;
    var evt = document.createEvent("MouseEvents");
    //the tenth parameter of initMouseEvent sets ctrl key
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
                                true, false, false, false, 0, null);
    a.dispatchEvent(evt);
}

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
if(!is_chrome)
{
    var url = window.location.pathname;
    var win = window.open(url, '_blank');
} else {
    openNewBackgroundTab();
}

Versuche dies. Es funktioniert gut mit Chrom, es funktionierte auch von Chrom-Erweiterung. All das hat bei mir nicht funktioniert.

chrome.tabs.create({ url: "http://www.google.com/", selected: false }); 




google-chrome