さて、ここにあります。当サイトにはブックマークレットがあり、Safariを除くすべての主要なブラウザで正常に動作します。調査したところ、次の2つの理由によるものであることがわかりました。
- Safari 5.5では、どのURLにも2347文字の制限があります。
- URIをエンコードします。
変数と関数の名前を非常に短い名前に変更し、jsを最小化することで、問題1を解決しました。
問題2では、関数全体を文字列として保存し、それをdecodeURIComponentしてから、evalを使用して関数を評価し、実行することにしました(evalを使用するべきではないことはわかっていますが、他の解決策は考えられません) 。問題は、decodeURIComponentが「URIError:URIerror」を返すことです。しかし、Safariの開発者コンソールで同じコードを実行すると、問題なく実行されます。
私は私の知恵の終わりにいます。どんな助けでも大歓迎です。
前もって感謝します。