0

重複の可能性:
JavaScript が無効になっているかどうかを検出する方法は?

ブラウザで JavaScript が無効になっているかどうかを検出する必要があります。

そのために、ドキュメント内に iframe を配置し、10 秒間隔でページを更新しました。スクリプトを無効にすると、javascript エラー URL を使用して最上位の親をリダイレクトする必要があります。iframe のコードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base href="http://localhost/test/" target="_top" />
<noscript>
<meta http-equiv="refresh" content="1; URL=http://localhost/test/javascript_error.php" />
</noscript>
<meta http-equiv="refresh" content="10" />
<title>Detect Script</title>
</head>
<body style="text-align:center;">
    Detecting whether javascript script is enabled/disabled in the browser.
</body>
</html>

タグを iframe html のコンテンツとリダイレクト メタ タグに追加しています。これは親の最上位の場所に読み込まれます。

なぜこれがうまくいかないのですか?またはどうすればこのことを機能させることができますか?

ありがとう


再帰選択

を使用して SQL ステートメントを作成しようとしましたWITHが、うまくいきません。

次の表を取得しました。

グループ (ID、名前)

1, 'My app'
2, 'Local admins'
3, 'Global admins'

ユーザー (1, 名前)

1, 'Arne'

GroupOwners (GroupId、OwnerType、OwnerId)

1, 'Group', 2

GroupMembers (GroupId、MemberType、MemberId)

2, 'Group', 3
3, 'User', 1

Arneの所有者であるすべてのグループを見つけようとしています。この場合はMy App. しかし、問題はそれLocal Adminsが所有者として設定されていることです。のメンバーGlobal adminsですLocal admins。そしてArneついにメンバーにGlobal admins

ここに画像の説明を入力

ダイヤモンドは気にしないでください、それらは間違っています

入れ子はグループごとに異なります。(ユーザーを直接 GroupOwners に持つものもあれば、ユーザーをメンバーとして持つ 1 つのグループを持つものもあります)

SQL文のマザー1つで解決できますか?追加の制約: Groups/Usersはシステムの他の場所で使用されます。

4

2 に答える 2

1

baseタグは、URL 値を持つように指定された属性のコンテンツとして表示される URL を持つ要素のみに影響します ( など) href

JavaScript の有効化/無効化を処理するための建設的なアプローチは、まず JavaScript が無効化されていると仮定してページを設計し、次に目立たない方法で JavaScript を追加することです。

于 2012-08-28T07:50:53.333 に答える
0

更新:あなたがやろうとしていることがわかります。タグはbaseリンクでのみ機能します。これは JavaScript が無効になっている場合にのみ行われるため、iframe の href を変更することはできず、その JavaScript エラー ページを参照している可能性のあるリンクを「プログラムでクリック」することはできませんbase。以下の私の解決策を参照してください。





コードが機能しない理由は、ほとんどのブラウザーが 2 つ<meta http-equiv="refresh">のタグを別々にレンダリングしないためです。

したがって、 を書く代わりに、次のように書く<meta http-equiv="refresh" content="10" />だけです。

<script type="text/javascript">
setTimeout(function () {
window.location.reload();
}, 10000);
</script>
于 2012-08-28T06:26:58.683 に答える