Yanflys Credit Plugin öffnet Links in neuem Fenster

  • Ich arbeite mit SRD Credits Plugin und mit Yanfly Credits Page (ja, mit beiden gleichzeitig und das funzt auch wunderbar).


    Wenn ich bei SRD einen Eintrag mit einem Link versehe und ingame diesen dann anklicke, öffnet sich der Link ganz wunderbar in Chrome in einem neuen Tab

    Wenn ich bei Yanfly das gleiche tue, öffnet sich ein neues Fenster, ohne Menüleiste, ohne URL-Zeile, ohne alles. Da mein Spiel aktuell auf 816x528 gelocked ist, ist dieses Fenster zudem auch sehr klein.


    Warum kann Yanfly das nicht auch so schön öffnen wie SRD?

    Ich habe mal mit meinen nicht vorhandenen Javascript-Kenntnissen die beiden Plugins auseinander genommen und vermute mal, der springende Punkt ist hier zu finden:


    Code
    1. SRD:
    2. Scene_SRD_Credits.prototype.useCredit = function() {
    3. if(this.credit().link) SRD.openLink(this.credit().link)
    4. this._creditWindow.activate();

    Kann man das entsprechend ändern, damit der Link nicht in einem neuen Mini-Fenster, sondern ganz normal in einem neuen Tab geöffnet wird?


    Ich habe bereits versucht:


    Code
    1. var win = window.open(url, '_blank', 'location=yes,menubar=yes,resizable=yes,scrollbars=yes,status=yes');

    allerdings werden sämtliche Befehle nach dem blank komplett ignoriert.

  • Das Plugin von SRD benutzt eine Funktion die in SRD_GameUpgrade definiert ist. Diese sieht wie folgt aus:

    Code
    1. SRD.openLink = function(url) {
    2. if(Utils.isNwjs()) {
    3. require('nw.gui').Shell.openExternal(url);
    4. } else if(window && window.open) {
    5. window.open(url);
    6. }
    7. };

    da Utils.isNwjs() wahr ist, wird require('nw.gui').Shell.openExternal(url) ausgeführt, welches den Standard-Browser öffnet, anonsten würde durch window.open(url) ein neuer Tab geöffnet werden, da man dann im Browser spielt (Nicht sicher ob das so genau stimmt).


    Die beiden Funktionen die bei Yanfly zu sehen sind sind jeweils wenn du im Titelbildschirm den Punkt Credits anwählst oder wenn du ihn im Menü auf einer Karte anwählst.

    Der Code wurde einfach 1:1 kopiert, da hätte man auch eine weitere Funktion erstellen können, die jeweils von beiden aufgerufen wird.


    Somit sollte folgender Edit im Yanfly-Plugin funktionieren (Nicht getestet)

    Wenn es nicht funktioniert, importiere ich die Plugins tatsächlich mal und probier nochmal ein bisschen rum ^^

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Grandro ()