多くの Web 開発者はこのような問題に遭遇したことがあるかもしれません。プログラムでは、エラー行 1、列 1 に「リリースされたスクリプトのコードを実行できません」という奇妙なメッセージが表示されます。このメッセージの説明は不明瞭で、列の説明はさらにランダムな js です。 JS プログラムをデバッグする友人にとって、エラーは最も憂鬱で嫌なことだと考えられています。この種の問題が発生した場合、最も簡単な方法は、Baidu または Google の小さな入力ボックスにエラーを直接貼り付け、解決する前にヒントを提供してもらうことですが、今回はそれほど簡単ではないようです。 Baidu で検索しているときにこの問題に遭遇しました。以前にもこの種の問題を見たことがありますが、いつも QQ スペース エラーのようなものです。私は頭がおかしいか、質問だけがあって答えがなく、退屈です。
このエラーはどこから来たのでしょうか?推測して試すしかありませんでした...長い間検索した後、最終的にエラーの場所を見つけました。その後、書き込みに問題がないことがわかりました。プログラムの説明プロセスを頭で考えますが、まだわかりません。百度の続きですが、とあるWebページでふと「ページを閉じるとページのjsが自動的に解放される」という一文を目にしました。この短い一文は私に多くのインスピレーションを与えてくれました。プログラムがページを閉じたかリダイレクトしたかを確認したところ、リダイレクトが実行されたことがわかり、このページに戻るときにエラーが発生しました。突然、理解できました。
シナリオ: ページには 2 つのフレーム ページ iframe a と b があります。ページ b では、関数参照が js を通じてページ a に渡され、ページ a の変数に保存されます。この参照を通じてページ a を実行できます。ページ b の一部のプログラムでは、ページ b が更新されると、ページ a からページ b への参照が失われますが、以前にページ b から渡された参照はまだ a に保存されていますが、現在の参照はページ b を参照できなくなります。 , そのため、実行すると「リリースされたスクリプト コードを実行できません」と表示されます。
解決策: 参照でエラーが発生した場合、参照をクリアするか、デフォルトを参照します。関数。また、ページbを再度ロードする場合には、再度関数参照をページaに転送する必要があるため、このようなエラーは発生しません。
ここでの説明は少し抽象的すぎるかもしれません。デモを見てからコードを確認すると、最初にテストしてから URL を返し、再度テストするとこの問題が発生します。 。