開発者の観点から見た、Mac 用 Safari と Windows 用 Safari の違いは何ですか?
要するに、次の違いを評価することだと思います (何かを見逃した場合は、修正してください):
- レイアウトのレンダリング
- Javascript の動作
最終的な決定は次のとおりです。
開発者は Safari Windows でのみテストできますか (重要なバグを見逃すわけにはいかないことを知っています)。
ありがとう、JB
レンダリングと JavaScript に関する限り、違いはありません。違うのはブラウザ自体に使われている下敷きのUIライブラリですが、ページのレンダリングは同じです。
システムには通常異なるフォントがあるため、Mac と Windows Safari ではフォントのレンダリングが異なる場合があります。あなたのページが見つからないフォントや異なるフォント サイズを適切に処理できる限り、問題はありません。
スタイル シートのレンダリングは、Safari と Windows で大きく異なります。これを確認するには、z-index が -1 の要素を持つページを作成してみてください。Windows バージョンでは問題なく機能しますが、Mac バージョンでは要素を選択できません。1 つのシステムでは機能するのに、別のシステムでは機能しないページがある理由を試行錯誤して理解しようとして、約 3 時間を無駄にしました。最悪の事態は、Safari が何かを適切にレンダリングしない場合、何の表示もなくレンダリングすることです。行ごとにデバッグする必要があり、これは恐ろしい経験です。
私は現在、ブログ内の浮動画像で、画像の周りにテキストが折り返されていると、OS X で適切にパディングされないという問題が発生しています。Windowsで正常に動作します。基本的に、画像の端が投稿のテキストの端と同じオフセットになるように、画像を左または右に揃えるためにパディングを追加しました。OS X では、画像がテキストの端からはみ出します。
また、CSS を多用する Web サイトで、Mac 用 Safari には存在しない Windows 用 Safari の問題も見てきました。詳細は思い出せませんが、ありました。
Safari で出会ったこのエクスペリエンスを追加したかっただけです。Windows Safari は Mac とは異なり、ユーザーベースの多くではないため、私たちの開発者はまだこれを調査しますが、優先度は高くありません。しかし、それはいずれか (または両方) に関連していると思います-Apple による実際のブラウザの低レベル実装、および/または JavaScript の違い。
私たちのウェブサイトは最近 HTML5 複数ファイル アップローダを実装しました。単一ファイルのアップロードは、両方のバージョンの Safari で正常に機能します。ただし、複数のファイルをアップロードすると、Windows では失敗します。アップローダ用に 2 つの異なるアップロード クライアントとエンドポイントがあり (A/B テスト フローを考えてください)、そのうちの 1 つは、問題の原因を示している場合と示していない場合がある詳細情報を提供しました。クライアントとエンドポイントの 1 つで、クライアントはアップロードするファイルのファイル名とファイルサイズの詳細を (JSON 配列オブジェクトとして) サーバー エンドポイントに送信します (Web インスペクターで表示)。動作する Mac ではファイルサイズは有効で、Windows では 0 バイトでした。
アップローダは JQuery ベースまたはその他の JS ライブラリだと思います。しかし、私は開発者ではないので、確信が持てません。しかし、この問題はJSライブラリを超えていると思います...
私が現在取り組んでいるサイトには、Windows の Safari 3 または 4 にはない、Mac の Safari に問題があります。私は私の人生のためにそれを理解することはできません。
javascript から Java を呼び出すと、次のメッセージがスローされます。
java.net.MalformedURLException: プロトコルがありません: java.net.URL.(不明なソース) java.net.URL.(不明なソース) java.net.URL.(不明なソース) sun.plugin.liveconnect.SecureInvocation.checkLiveConnectCaller (不明なソース) で sun.plugin.liveconnect.SecureInvocation.access$000 で (不明なソース) sun.plugin.liveconnect.SecureInvocation$2.run で (不明なソース) java.security.AccessController.doPrivileged(ネイティブメソッド)で sun.plugin.liveconnect.SecureInvocation.CallMethod (不明なソース) で
Safari Windows では使用できますが、Safari Mac では使用できません。
私はかなり標準的なレイアウトのウェブサイトに取り組んでいます。他のdivを含むボックスがあります。IE6 +、FF3 +など、すべての主要なブラウザで動作します。OSXのSafari 5では、ボックスは完全に左側にあり、私のWebサイトの境界の外側にあります。Windowsの同じサファリバージョンでは、問題ありません。私はこれに夢中になる。
Mac Safari では、file:/// プロトコルを使用してクロス スクリプト ajax を実行できますが、Windows Mac ではこれを実行できません。
Windows XP の Safari のポップアップ ブロッカーに問題がありました。ブロッカーは、ユーザーが Flash のリンクをクリックしてから JavaScript をトリガーしてウィンドウを開くことを受け入れなかったと思います。ただし、他の主要なブラウザや OS X の Safari では機能しました。Chrome は XP でもウィンドウをブロックしましたが、OS X や Ubuntu ではブロックしませんでした。