私はsepereateページを持っています。ユーザーはボタンをクリックしてWebサイトのスタイルシートを変更することができます。これにより、各ページのすべてのスタイルシートが選択したスタイルシートに変更されます。JavaScriptを使用していますか?
外部JavaScriptファイル:ユーザーがボタンをクリックしたときのための
function ChangeSheet(sheet)
{
document.getElementById('pagestyle').setAttribute('href', sheet);
}
pages = {
default : 0;
design1 : 0;
design2 : 0;
}
function setDefault(var num){
pages.default = num;
}
HTMLコードは、CSSを変更するには:
<p>Click one of the links to change the website design viewing settings.</p>
<button onclick="setDefault(1)">Default</button>
ナンバー1は、ユーザはこの1つを選んだことを意味し、ページクラス内に保存されます。基本的にブール。
htmlファイルに埋め込まれたJavascriptを使用すると、外部のjavascriptファイルをインポートするだけでなく、リンクIDも表示されます。ではない私は、ボタンを押すと、しかし、何も起こりません
<link id = "pagestyle" rel="stylesheet" type="text/css" href="default.css">
<script src= "swap.js"></script>
<script type="text/javascript">
if(pages.default == 1)
{
ChangeSheet('design1.css');
}
</script>
、およびIM:私は、もしそうなら、私たちは「design1.css」をスタイルシートへの変更、pages.deafultが1であるかどうかを確認するためにinternelのJSを使用してみてください確かになぜ?申し訳ありませんが、私は非常にウェブサイトのデザインとJavaScriptに新しいです。
あなたの 'if()'はページの読み込み時にのみ実行されます。あなたのボタンで 'default'を変更しただけなので、もう一度実行するつもりはありません。また、javascriptにはページ読み込み間に永続性がありません。そのオブジェクトをどこかに保存する必要があります... server、cookie、またはlocalStorage – charlietfl
ボタンをクリックする前にjavascriptでpages.defaultが1に等しいかどうかチェックしています。ボタンをクリックすると、pages.defaultを1に変更しますが、もう一度チェックを行いません。 –
私はあなたのアップデートに対処するために私の答えを更新しました。 (これは、ページロードの間に永続性が必要であるというcharlieftlの要点をエコーしますが、ファイルシステムから直接HTMLとJSを実行している場合でも解決策を提供します) – nb1987