mattyoung
(Matt Young)
1
テーマ管理者のカスタマイズ領域から、管理者インターフェースの js タブにこれを移動するのを手伝ってください。
<script type="text/discourse-plugin" version="0.8.19">
<script type="text/discourse-plugin" version="0.8.19">
api.onPageChange(() => {
if ( window.location.href === "https://apple.com/123" ) {
window.location.replace( "https://dell.com/234" );
}
});
</script>
私は次の例を見ています。
export default apiInitializer((api) => {
// Your code here
});
これは api.renderInOutlet の例ではうまくいきましたが、この onPageChange については、更新された例を見つけることができませんでした。
これを以下に移動したらどうなりますか。
api.onPageChange(() => {
if ( window.location.href === "https://apple.com/123" ) {
window.location.replace( "https://dell.com/234" );
}
});
に?
mattyoung
(Matt Young)
3
ha. 皮肉を言っているんでしょう?ええ、すぐに試しましたが、失敗しました。
こちらが機能したコードです。
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.0", (api) => {
api.onPageChange((url) => {
// url は通常パスですが、一部のコンテキストでは完全な URL になる場合があるため、両方に対応します。
const path = url?.startsWith("http") ? new URL(url).pathname : url;
if (path === "/123") {
window.location.replace("https://dell.com/234");
}
});
申し訳ありません。ご質問を誤解していました。
興味深いですね。どのような状況でしょうか?onPageChangeはEmberのパス用だと記憶しているので、URLにhttpsが含まれているのを見たことがありません。
「いいね!」 1
こんにちは、整理のため、元のリリースノートのスレッドからこの投稿を新しいトピックに移動しました。これにより、スレッドが少しすっきりし、視認性が向上します。頑張ってください 
しかし、後続の例では window.location.href のチェックをしなくなっていることに気づきました。それが問題でしょうか?