2012-01-10 9 views
1

私はiPhonesに応答するウェブサイトを構築しています。欠点は、このタグはまた、内とズームアウトからのiPadを防ぐことで、私はiPadの上でズームを許可することができる方法が iPadではなくiPhoneではページズームを許可する方法

meta name="viewport" content="width=device-width; initial-scale=1.0; 
maximum-scale=1.0;" 

あり

:私は、metaタグを使用している画面の規模に拡大するには、画面を取得するにはiPhoneではないのですか?

+0

サーバーサイドの言語は何ですか? –

答えて

2

ブラウザのユーザーエージェントが何かを検出するために、何らかの種類のサーバー側言語(PHP、ASPなど)を使用できませんか? iPhoneとiPadには2つの異なるユーザーエージェント文字列があります。ユーザエージェントがiPhoneであることを検出した場合にのみ、メタタグを設定します。

一般的なユーザエージェント文字列は、「iphone user agent string」と「ipad user agent string」を使用して検索できます。

+0

これは可能性はありますが、メタタグを読み取ることができるすべてのデバイスで動作する解決策を見つけることを願っています – RexT

+0

この解決策に問題があるかどうかわかりません。ユーザーエージェント検出サーバー側を実行している場合は、どのデバイスでも動作します。 – Chaser324

0

それはあなたが参照している同じページであるので、あなたは本当に唯一のフロントエンド側からのズーム動作を制御することはできません。..

あなたはコード化され、関連するメタタグを持っているし、その後含めることになる2つの別々のJSPを使用することができますそれらは動的に私はあなたがしていることに同意...

ここでもあなたはきっとuouが望むものを達成するためのサーバー側の技術のいくつかの種類を使用する必要がwuld ..要求がユーザーエージェント文字列を通じてどこから来ているに

+0

実際には別のページは理想的ではありません。彼のテンプレートにif/elseロジックを適用できない理由はありません。 –

3

をベースサーバ側でこれを行う方が良い PHPの場合

<?php 
    // we only give the viewport if it is not an iPad: 
    if(!(bool) stripos($_SERVER['HTTP_USER_AGENT'],'ipad')) { ?> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> 
<?php } ?> 

しかし、あなたが必要と感じる場合は、Javascriptで行うこともできます(ただし、理由はわかりません)。それは信頼できるほどではありません! )

if (navigator.userAgent.match(/iPad/i) != null) { } else { 
document.write('[meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; " /]'); 
} 

は、タグをStackOveflowエディタでエスケープされている理由は、私はわからないよう... [<とを交換してください。

関連する問題