アカウント名:
パスワード:
https://srad.jp/comment/4607277 [srad.jp]やhttps://srad.jp/comment/4607402 [srad.jp]へのレスですが、困っている人が見つけやすいように、新しく建てます。Firefox使ってるので影響はないんですが、暇つぶしに調べてみました。やっつけのダーティーハックですが。解決方法だけ知りたい人は↓の方の==やり方==へ。
最初シンプルにお猿さんpolyfillを@requireで突っ込んで貰えばと思ったんですが、何故か同じエラーに。発生個所はpollyfillの中。コードを追ってみると。polyfillが使われずにデフォルトのcreateEventを読んでいるっポイ。
if (type === "MutationEvent") { return new MutationEvent("MagicString"); } return originalCreateEvent.call(this,type,...args);
ここで、originalCreateEventを呼んでいる?ん?スラドのイベント名が違う?MutationEventの所が、MutationEventsになってる。。。https://developer.mozilla.org/ja/docs/Web/API/MutationEvent [mozilla.org]うん。MutationEventが正しい。なんで、今まで動いてたんだろ。というか、Firefoxは現在進行形で動いているんだろ?仕様上MutationEventsも許可されていて、Polyfillが未実装とか?って、事でPolyfillの方に手を入れることに。って言っても if (type === "MutationEvent")を if (type === "MutationEvent" || type === "MutationEvents") {にするだけですが。だけと言っても、他人のGithub上のPolyfillを直接修正はできないので、修正したものを適当なWebサーバーに上げるか、お猿さんにローカルファイルへのアクセスを許可するか…。どっちもやりたくない。幸いPolyfillのサイズはminify前で200行くらいなので、お猿さんにそのままコピペして修正しました。
結果、続きを表示に関しては正常に動くようになりました。タグ関連のエラーは出ていますが。
================やり方================・ブラウザの拡張機能でお猿さん(Tampermonkey)をインストール・Tampermonkeyのダッシュボードを開く ブラウザのインストール済み拡張機能画面からTampermonkeyのオプションを開く(EDGEだと詳細の中)・上のタブの+を押してユーザースクリプトを新規作成
・ヘッダの修正以下を書き換え// @name スラドもっと読む修正(MutaitonEventsPolyfill)// @match https://srad.jp/* [srad.jp]@matchの下(じゃなくてもいいけど)に以下を追加(スラドのスクリプトが読み込まれるより前にこのスクリプトが実行されるように)// @run-at document-start
・Polyfillをコピーhttps://raw.githubusercontent.com/mfreed7/mutation-events-polyfill/mai... [githubusercontent.com]かhttps://raw.githubusercontent.com/mfreed7/mutation-events-polyfill/mai... [githubusercontent.com]を別タブで開いて全て選択してコピー。(URL見て違いが理解できない人は上で)
・ユーザースクリプトに張り付けダッシュボードのタブを開いてヘッダーコメントと (function() { 'use strict'; console.log(document);
// Your code here... })();の間に張り付け。
・修正最後の方にある if (type === "MutationEvent")を if (type === "MutationEvent" || type === "MutationEvents") {に修正。minifyを選んだ人は該当箇所を同じように修正。
・保存Ctrl+sで保存。
Edgeしか試していませんが、他のブラウザでも多分動くと思います。Tampermonkey限定の機能は使っていないので他のお猿さんでも動くかもしれません。他のサイトでも同様のエラーが出た場合は、@matchをもう一行追加してサイトのURLを張り付ければ動くかもしれません。(@matchは何行あってもOK)Ctrl+F5で再読み込みが必要かもしれません。
追加修正です。下の行を追加しないとストーリーのページで動作しません。それとスラドのオートリンク対策でプロトコル部分消しました(このままで動作します)。// @match *srad.jp/*// @match *.srad.jp/*
ありがとうございます。https://srad.jp/comment/4607238 [srad.jp]を書いた者ですが、この対応でその3点の現象が出なくなったことを確認しました。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
EDGEとChromeで続きを読むがMoreになって正常に動かない問題の(やっつけ)修正 (スコア:2, 興味深い)
https://srad.jp/comment/4607277 [srad.jp]
や
https://srad.jp/comment/4607402 [srad.jp]
へのレスですが、困っている人が見つけやすいように、新しく建てます。
Firefox使ってるので影響はないんですが、暇つぶしに調べてみました。やっつけのダーティーハックですが。解決方法だけ知りたい人は↓の方の==やり方==へ。
最初シンプルにお猿さんpolyfillを@requireで突っ込んで貰えばと思ったんですが、何故か同じエラーに。発生個所はpollyfillの中。コードを追ってみると。polyfillが使われずにデフォルトのcreateEventを読んでいるっポイ。
if (type === "MutationEvent") {
return new MutationEvent("MagicString");
}
return originalCreateEvent.call(this,type,...args);
ここで、originalCreateEventを呼んでいる?ん?スラドのイベント名が違う?
MutationEventの所が、MutationEventsになってる。。。
https://developer.mozilla.org/ja/docs/Web/API/MutationEvent [mozilla.org]
うん。MutationEventが正しい。なんで、今まで動いてたんだろ。というか、Firefoxは現在進行形で動いているんだろ?仕様上MutationEventsも許可されていて、Polyfillが未実装とか?って、事でPolyfillの方に手を入れることに。
って言っても
if (type === "MutationEvent")
を
if (type === "MutationEvent" || type === "MutationEvents") {
にするだけですが。だけと言っても、他人のGithub上のPolyfillを直接修正はできないので、修正したものを適当なWebサーバーに上げるか、お猿さんにローカルファイルへのアクセスを許可するか…。どっちもやりたくない。幸いPolyfillのサイズはminify前で200行くらいなので、お猿さんにそのままコピペして修正しました。
結果、続きを表示に関しては正常に動くようになりました。タグ関連のエラーは出ていますが。
================やり方================
・ブラウザの拡張機能でお猿さん(Tampermonkey)をインストール
・Tampermonkeyのダッシュボードを開く
ブラウザのインストール済み拡張機能画面からTampermonkeyのオプションを開く(EDGEだと詳細の中)
・上のタブの+を押してユーザースクリプトを新規作成
・ヘッダの修正
以下を書き換え
// @name スラドもっと読む修正(MutaitonEventsPolyfill)
// @match https://srad.jp/* [srad.jp]
@matchの下(じゃなくてもいいけど)に以下を追加(スラドのスクリプトが読み込まれるより前にこのスクリプトが実行されるように)
// @run-at document-start
・Polyfillをコピー
https://raw.githubusercontent.com/mfreed7/mutation-events-polyfill/mai... [githubusercontent.com]
か
https://raw.githubusercontent.com/mfreed7/mutation-events-polyfill/mai... [githubusercontent.com]
を別タブで開いて全て選択してコピー。(URL見て違いが理解できない人は上で)
・ユーザースクリプトに張り付け
ダッシュボードのタブを開いて
ヘッダーコメントと
(function() {
'use strict';
console.log(document);
// Your code here...
})();
の間に張り付け。
・修正
最後の方にある
if (type === "MutationEvent")
を
if (type === "MutationEvent" || type === "MutationEvents") {
に修正。minifyを選んだ人は該当箇所を同じように修正。
・保存
Ctrl+sで保存。
Edgeしか試していませんが、他のブラウザでも多分動くと思います。Tampermonkey限定の機能は使っていないので他のお猿さんでも動くかもしれません。
他のサイトでも同様のエラーが出た場合は、@matchをもう一行追加してサイトのURLを張り付ければ動くかもしれません。(@matchは何行あってもOK)
Ctrl+F5で再読み込みが必要かもしれません。
Re:EDGEとChromeで続きを読むがMoreになって正常に動かない問題の(やっつけ)修正 (スコア:1)
追加修正です。下の行を追加しないとストーリーのページで動作しません。それとスラドのオートリンク対策でプロトコル部分消しました(このままで動作します)。
// @match *srad.jp/*
// @match *.srad.jp/*
Re: (スコア:0)
ありがとうございます。
https://srad.jp/comment/4607238 [srad.jp]を書いた者ですが、この対応でその3点の現象が出なくなったことを確認しました。