Ember - изменить текущий маршрут из консоли браузера - PullRequest
0 голосов
/ 03 августа 2020

Я вовсе не разработчик Ember, но хотел бы изменить текущий маршрут из консоли браузера. Возможно ли вообще правильно получить доступ к Ember, например, Ember.Router.prototype.transitionTo('/feed')?

Версия сайта 3.16.9

1 Ответ

0 голосов
/ 07 августа 2020

После долгих исследований я нашел возможные решения, которые вы можете использовать. Я пытался добиться этого на веб-сайте Linkedin через Chrome Extension

function runEmbedded(path) {
  const namespaces = window.Ember.Namespace.NAMESPACES;
  let application;
  namespaces.forEach(function (namespace) {
    if (namespace instanceof window.Ember.Application) {
      application = namespace;
      return false;
    }
  });
  application.__container__.lookup('router:main').transitionTo(path);
}

const payload = '/some/new-path'
script.text = `(${runEmbedded.toString()})('${payload}');`;
document.documentElement.appendChild(script);

Второе решение / взлом :

Другой возможный взлом, когда веб-сайт не прослушивание действий pushState / replaceState из History API - это состояние pu sh 2 раза, а затем go назад. Пожалуйста, помните, что это всего лишь взлом.

history.pushState({}, '', msg.payload);
history.pushState({}, '', msg.payload);
history.back();
...