これは頻繁には発生しません。なぜこのJavaScriptコードがChromeで壊れているのですか?
-
29-09-2019 - |
質問
Stack OverflowのMarkdownエディターに恋をしたと判断しました。それはからのフォークです showdown.js
ジョン・フレイザーから。私は私のプロジェクトでこのパーサーを使いたいと思っていますが、ソースを分析した後、私の好みは少し厄介であることがわかりました。
そこで、私は自分のニーズを満たすためにJavaScriptコードを変更することにしました。
- すべてのグローバル変数を取り除く、
- 変数宣言を単一に組み合わせます
var
スコープごと、 - アレイ結合への連結を変更する、
- 他のさまざまな微調整が、模倣ソースを小さくすることを目的としています。
1つの小さな問題を除いて、すべてが美しく機能しています。 command.doList
機能はChromeで不安定です。 Internet Explorer、Firefox、およびSafariで適切に動作するようにすべてをテストしました。問題を次の行まで隔離しました。
// Get the item prefix - e.g. " 1. " for a numbered list, " - " for a bulleted
// list.
getItemPrefix = function () {
var prefix;
if (isNumberedList) {
// the `s` variable is just a string space.
prefix = [s, num, '. '].join('');
num++;
} else {
prefix = [s, bullet, s].join('');
}
return prefix;
};
// Fixes the prefixes of the other list items.
getPrefixedItem = function (itemText) {
// The numbering flag is unset when called by autoindent.
if (isNumberedList === undefined) {
isNumberedList = /^\s*\d/.test(itemText);
}
// Renumber/bullet the list element.
// THE FOLLOWING LINES COMMENTED OUT TO FIX A BUG.
//itemText = itemText.replace(/^[ ]{0,3}([\*\+\-]|\d+[.])\s/gm,
// function () { return getItemPrefix(); });
return itemText;
};
エンドの近くでコメントアウトされた2つの行は、クロムが不安定に動作するのを止めますが、番号付きリストはもはや自動インクリメントではありません。私が線を解決するとすぐに、Chromeを除き、すべての主要なブラウザは正常に動作し始めます。 (Chromeはクレイジーになり、リストを追加の番号付けと弾丸で自動表示します。また、順序付けられていないリストを使用しようとするときにも起こります。)
問題は明らかに存在しません ここ Stack Overflowでは、それが私の側の愚かな監視であることを望んでいます。 (それまたはスタックオーバーフローのいずれかがバグを更新して修正しました。)
解決
あなたはを見ることができます 修理 別のWMDフォークの場合(32行目)。
他のヒント
四角いブラケットで *+ - をバックスラッシュする必要はありませんか?それはChromeが問題を抱えているものかもしれません。
所属していません StackOverflow