pfaffman
(Jay Pfaffman)
2022 年 12 月 22 日午後 11:13
2
確認できます。ユーザーがわざわざ問題を起こしているような、例外的なケースのように思えるため、修正する価値があるかどうかは定かではありません。
「いいね!」 1
修正が難しいとお考えですか?
私はよくクリックします。よくテキストを選択します。
そのため、非常に頻繁に迷惑を被ります。
このバグについては以前から言及していましたが、今回ほどうまく 説明したことはありませんでした。
pfaffman
(Jay Pfaffman)
2022 年 12 月 24 日午前 9:40
4
jesus2099:
it bugs me very often.
That is annoying.
If you don’t have the skills to submit a PR (I don’t think I do) then just using control-click to open in a new tab will work, isn’t hard to automatize, and will solve the problem on every site, even those that don’t open links in new tabs.
jesus2099:
それはよく私を悩ませます。
それは迷惑ですね。
もしあなたがPRを提出するスキルを持っていないなら(私は持っていないと思います)、コントロールクリックで新しいタブで開くだけでうまくいきます。自動化は難しくなく、新しいタブでリンクを開かないサイトでも、あらゆるサイトの問題を解決できます。
「いいね!」 1
Ctrl+クリックを使用しますが、すべての外部リンクを新しいタブで開く という便利なオプションがあります。
しかし、このオプションが実際に行うことは、ランダムな外部リンクを新しいタブで開く ことです。
再現スキームを特定するのに数か月、場合によっては数年かかりました。
私には本当にランダムに思えました。
一貫した動作のために、このオプションを削除しますか?
簡単なCSSの問題のPRのためにDiscourseの開発環境をセットアップしようとしたことを覚えています。
しかし、私の記憶が正しければ、PCが古すぎてすべての要件をインストールまたは実行できなかったため、断念しました。
「いいね!」 1
以前のDiscourse開発環境インストールの失敗 が見つかりました。
私の個人的なLinux PCは古すぎ、プロフェッショナルなWindowsラップトップではハイパースレッディング が有効になっていませんでした。
私の新しいプロフェッショナルラップトップは、現在ハイパースレッディング \*が有効になっているようなので、新しい指示 に従えるかどうか、管理者権限なしで試してみます。
\* wmic CPU Get NumberOfCores,NumberOfLogicalProcessorsは、物理コアよりも多くの論理コアを示しています。
Don
2022 年 12 月 28 日午後 8:00
7
こんにちは。
CSSで修正可能 だと思います。
.cooked a {
@include user-select(text);
}
お役に立てば幸いです。まだあまりテストしていませんが、うまく機能するようです。
編集: user-select: text はリンクに追加する必要があります。なぜなら、.cooked で選択されたテキストだけでなく、サイト上のすべての選択されたテキストが影響を受けるからです。コードを変更しました。
「いいね!」 6
Canapin
(Coin-coin le Canapin)
2022 年 12 月 28 日午後 8:40
8
それは私には魔法のように見えます。どのように機能するのか知りたいのですが、このトリックを説明していただけますか?
「いいね!」 2
sam
(Sam Saffron)
2022 年 12 月 29 日午前 1:41
9
素晴らしい洞察力ですね、ドン。プルリクエストを提出しますか?
「いいね!」 6
Don
2022 年 12 月 29 日午後 12:49
10
サム、ありがとうございます。提出前にさらに詳しくテストしたところ、残念ながらこれでは十分ではないようです。このソリューションは Chrome でのみ機能します。
「いいね!」 5
バグの原因となっているコードは次のとおりです(app/assets/javascripts/discourse/app/lib/click-track.js より)
// Cancel click if triggered as part of selection.
const selection = window.getSelection();
if (selection.type === "Range" || selection.rangeCount > 0) {
if (selectedText() !== "") {
return true;
}
}
このコードを削除すると問題は解決し、テストが壊れるようには見えません(変更前と変更後の両方で、理由不明ですがいくつかのテストが失敗していますが、新しいテストは明らかにありません)。
そのため、このコードが何か役立つことをしているのか疑問に思っています。なぜなら、少なくとも一つ確かなことは、それが言われていることをしていないということです。そうでなければ、バグ報告者は「選択 + クリック」時にリンクをまったくたどれないはずですが、それは彼の苦情ではありません。
誰か、このコードが何を達成することを意図しているのか教えていただけますか?
「いいね!」 1
もしかしたら、テキストを選択して引用する際に、新しいタブでリンクが開くのを防ぐために作られたのかもしれません。
見つけたコードが無効になっていて、「すべての外部リンクを新しいタブで開く」オプションがオンになっている場合、
リンクを含むテキストを選択(マウスダウン、ドラッグ、マウスアップ)して、リンクが開かないかどうか試していただけますか?
リンクを囲むような選択と、リンクの途中で終わるような選択も試してみてください。
選択は常に選択のみであり、リンクを開くべきではありません。
はい、そのような選択はリンクをたどったり新しいタブで開いたりすることなく、期待どおりに機能します。
「いいね!」 1
sam
(Sam Saffron)
2023 年 1 月 10 日午前 4:13
14
特定のブラウザの回避策があったような気がしますが、Safari/Firefox/Chromeで試してみて、何かトリガーされるか確認してみてはどうでしょうか?
「いいね!」 1
Firefox、Chromeで動作します。UbuntuでSafariを試すにはどうすればよいですか?
「いいね!」 1
開発サーバーはWi-Fiからアクセスできますか?そうすれば、スマートフォンでもテストできます。
おそらく、タッチスクリーンの指ドラッグイベントがリンクを開いている可能性があります。
このスマートフォンブラウザ(Firefox、Chromiumベース、またはSafari)をテスト済みブラウザリストに追加できます。
ところで、このバグに対するあなたの作業に本当に感謝しています!!
このキャンセルコードの理由を以下に見つけました。
master ← lidlanca:fix-link-release
opened 08:07AM - 13 Sep 14 UTC
Prevent a click if the user select content in a topic and release the mouse over… a link.
https://meta.discourse.org/t/selecting-a-link-results-in-it-being-opened/14846
トピック内でコンテンツを選択し、リンクの上にマウスを離した場合 にクリックを防ぎます。
https://meta.discourse.org/t/selecting-a-link-results-in-it-being-opened/14846
[削除されたトピック]
興味深いコメント :
テストのためにWindowsプラットフォームしか利用できません。
この修正は、ファイルをまとめてコンソールに貼り付けるだけで簡単にテストできます。
@sam トピックページを読み込んだ後にコンソールに貼り付けるべきファイルはどれか分かりますか?
@Aleksey_Bogdanov そのファイルを提供していただければ、WindowsのVivaldi、Firefox、Android 9 Kiwiブラウザのコンソールに貼り付けます。あなたはiOS、Mac OS Safariに貼り付けていただけますか。
AndroidのChromeとFirefoxでは問題は検出されませんでしたが、Firefoxでは選択がそれほど自由ではありませんでした。
「いいね!」 1