10

現在のほとんどのブラウザにはタブの機能がありますが、タブのインデックスを取得する方法はありますか?

タブ 1 には www.google.com が開かれ、タブ 2 には www.google.com が開かれています。タブ インデックスが何であるかを識別する方法はありますか?

疑似コード:

if($tab == 2) {
  alert "Tab 2 is active\n";
}

if($tab == 1) {
  alert "Please use Tab 2 as this is Tab 1\n";
}

私がタブについて検索するものはすべて、ウェブページ自体のタブ インデックスに関連しているので、おかしいですね...

4

5 に答える 5

7

厳密に言えば。TABS はエンド ユーザーのマシンにあります。PHPはサーバー上で動作します。PHP は、エンド ユーザーのマシンが何をしているかを見ることができず、エンド ユーザーの PHP で処理されたページのみを提供できます。

Google は JavaScript と Cookie を使用してこれを行います。開いたページのインスタンスごとに、Cookie カウンターをインクリメントします。カウンターが 1 より大きい場合は、AJAX を使用してエラー メッセージを表示します。また、Cookie または JavaScript が無効になっている場合は、ページが機能しないようにしてください。

jQueryを調べてください。

于 2011-01-12T14:48:29.000 に答える
1

絶対タブインデックスを決定する限り、Javascriptでそれを行う方法はわかりません。ウィンドウは名前で識別できますが、それ以外は識別できません。

In your example of two tabs containing the same web page, you should be able to uniquely identify them by making them aware of each other. You'd need to use cookies for this. Essentially, when a page is loaded, it would check for a cookie that tells it about other instances of the page that are currently loaded, and make decisions accordingly.

In this scenario, your onload handler would check the cookies, and register the loading page. You'd also need an onunload handler to unset the cookie pertaining to the page being unloaded.

See Javascript communication between browser tabs/windows for more information on how to use cookies to communicate between windows with Javascript.

于 2011-01-07T00:31:24.887 に答える
0

その情報をサポートするためのグローバル変数はないと確信しています。しかし、FirefoxやGoogleChromeなどの賢いブラウザが何かをサポートしているかもしれません。私はネットで簡単に検索しました、そして私はこれらを持ってきました。

まず、MozillaTabHelperがMozillaで動作できることを確認します。ただし、これがクロスブラウザソリューションになることは決してないことを忘れないでください。また、クロスブラウザソリューションはないと思います。

2つ目は、これを自分で使用したい場合は、役立つ可能性があるため、テストは行いません。これはアドオンです。これがOpenTabCountMozillaアドオンです

タブプレビューを開く

于 2011-01-15T10:59:26.453 に答える
0

この仲間にこれ以上時間を無駄にしないでください。これは主に、セキュリティ上の制限により、ブラウザ内の Web ページがこの種の情報を取得できないためです。

他の何人かがコメントで提案しているように、後のネイティブなアプローチを探してみてください。

于 2011-01-14T06:35:49.163 に答える
0

PHPでは:間違いなく-cleintsブラウザーにアクセスせずにサーバー上で実行されます。

おそらくJavaScriptを使用した解決策があります(しかし、私はそれについて聞いたことがありません。これも不可能だと確信しています-少なくともクロスブラウザソリューションとしてはそうではありません)。

あなたが持っている可能性が最も高いのは(もしあれば)、フラッシュ、シルバーライト、またはJavaプラグインなどの他のクライアント側言語を使用することだと思います.これはJavaScriptよりもはるかに多くのことができるためです.より多くの情報やヒントを提供するのに十分なこれらのいずれも知りません.

于 2010-12-22T15:03:55.587 に答える