この単純な問題を解決するために 3 日間を費やしました。私が望むのは、ウェブサイト全体がwinversion
グローバル変数の値を記憶し、それを function 内から変更できるようにすることだけです。(はい、グローバル変数は darthwader よりも悪いことを知っていますが、それが私の人生で起こっている唯一の良いことです)
を含む 1 つの html ファイルがあり<iframe>
、ユーザーが内部をクリックすると、(ドメインから) さまざまなページがその にロードされます<iframe>
。
これは私のindex.htmlです(周りにいくつかのdivがあり<iframe>
ますが、他のすべてが機能し、javascriptはこれにのみ使用されるため、無関係であると確信しています<iframe>
)
<script type="text/javascript" src='script.js'></script>
---------- ( some inner body html , not important)----------------
<iframe id="myiframe" src="mainproblems.html" >
デフォルトの iFrame ページには、この html コードがあります
<a href="#" onclick="setwinver('xp')";>I have Windows XP </a>
<a href="#" onclick="setwinver('win7')";> have Windows 7/Vista </a>
私のscript.jsはこれです
// This is supposed to be my global variable to hold windows version value
var winversion ;
// This function (I officially hate it now) is supposed to change
// winversion variable based on what user clicked on the iFrame
function setwinver(ver)
{
//so now winversion should either have xp or win7 assigned
winversion=ver;
}
しかし、後で同じ JavaScript ファイル<iframe>
を読み込もうとするwinversion
と、未定義と表示されます。このnavigatenow()
関数は、ユーザーが 1 ページ目で Windows バージョンを選択し、次の html ページでリンクをクリックして msconfig 説明ページ ( にロードされる<iframe>
) を起動するとトリガーされます。
function navigatenow()
{
if (winversion == "xp")
{
window.location.href=("msconfigxp.html");
}
else
{
window.location.href=("msconfig7.html");
}
}
私が試してみました:
使う/使わない
var
。/notusing 一重引用符、二重引用符を使用します (ただし、私が知っている違いはありません)。
巻き上げに関するダースの記事を読んでいます。
persistjs を数時間使用します。
瞑想と祈り!
何も機能しません。のろわwinversion
れた変数は、私の存在の目的と同じくらいまだ定義されていません。
私が望むのは、ユーザーが選択したWindowsバージョンをhtmlファイルに記憶させることだけです(プログラムでWindowsバージョンを検出することはできません。ユーザーにバージョンを尋ねる目的は異なります)。
これを修正する助けがあれば大歓迎です。そうでない場合は、飛び降りることができる適切な崖を提案してください。