ブラウザーのサイズに基づいて要素のサイズを更新する関数があります。
window.onresize = function() { setContentHeight(); }
ただし、AJAX を使用してテーマを交換した (本文の innerHTML を変更した) ため、この関数を変更する必要があります。新しいテーマには、新しい画像だけでなく、まったく異なるレイアウトも含まれています。そのため、古い onresize 関数は単にページを台無しにします。これを修正するには、次の 2 つの方法を考えました。
方法 1) わずかに変更された関数にパラメーターを渡しますsetContentHeight(themeSelection);
。このパラメーターは、switch/case ステートメントで使用されます。長所: テーマのスワップは、渡された変数の値を変更するだけです。短所:setContentHeight(themeSelection);
すべてのテーマのコードが含まれ、必要以上に長くなります。
方法 2) XMLHTTPRequest から解析されたスクリプト コードを評価して、関数を上書きします。ただし、JS で既存の関数を変更する方法や、単純に削除して新しい関数を開始する方法がわかりません。長所: 関数は短いままです 短所: 方法がわかりません。
あなたはどちらをしますか、それともまったく別のことをしますか? あなたの答えが方法 2 である場合、それがどのように行われるかについてのリンクを提供できますか? もちろん、ほとんどの作業を自分で行うことに問題はありませんが、推奨される方法である場合は、いくつかのアドバイスと方法 2 の例を使用できます。