В компоненте ауры я пытаюсь автоматически открыть новый компонент с помощью window.open, но это приводит меня к новой вкладке вместо того, чтобы быть на той же странице. Я хочу быть на той же странице и открыть новую вкладку.

0
Mohita Kalra 24 Апр 2020 в 09:14
Что вы имеете в виду автоматически, вы, вероятно, должны поделиться своим кодом, где вы размещаете window.open, а также Как спросить
 – 
User6670
24 Апр 2020 в 10:03
Мой компонент:
Я ваш первый компонент!!
 – 
Mohita Kalra
24 Апр 2020 в 10:30
Контроллер: ({ mycomp: function(cmp, event, helper) { var navService = cmp.find("navService"); var pageReference = { "type": "standard__component", "attributes": { "componentName": "c__PQRTEST " }, "state": { 'сообщение':'Это целевая страница' } }; cmp.set("v.pageReference", pageReference); const handleUrl = (url) => { window.open(); }; navService.generateUrl(cmp.get("v.pageReference")).then(handleUrl); } })
 – 
Mohita Kalra
24 Апр 2020 в 10:33

1 ответ

Нет стандартного способа сделать это, например, target="_blank" или что-то в этом роде. Но есть хакерский способ сделать это с небольшим количеством JavaScript

Это можно сделать, имитируя ctrl + щелчок (или любые другие комбинации клавиш/событий, которые открывают фоновую вкладку) на динамически сгенерированном элементе с атрибутом href, установленным на желаемый URL-адрес.

function openNewBackgroundTab(){
    var a = document.createElement("a");
    a.href = "http://www.google.com/";
    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);
}
0
Sahil Malhotra 24 Апр 2020 в 09:44
На самом деле, мне нужно, чтобы он открывался автоматически, а не по клику.
 – 
Mohita Kalra
24 Апр 2020 в 09:53