-2

Google ビジュアライゼーションを表示する (長い)<script>要素があります。コードは Google から直接取得されます。私はそれを変更する方法がありません。

ユーザーが [表示] をクリックするまで、この非表示の出力が必要です。

この目標を達成するために、次の 2 つの試みがありました。

  1. 非表示の DOM ノード内でスクリプト タグが処理されると、それを含むノードが表示されるときに表示に失敗します。

  2. スクリプト タグが動的に挿入された場合、非同期に実行できないjQuery('#parent-element').html('<script...>');必要があるため失敗しdocument.writeます(ドキュメント内のどこに書き込むかを伝える方法がありません)。

表示/非表示ボタンが必要な理由は、出力が全画面オーバーレイで表示されるためです (通常のコンテンツ領域には大きすぎます)。

クライアントが外部 SAAS (google、youtube など) によって提供される他の「魔法の」html チャンクを埋め込むことができるように、一般的に機能するソリューションが必要です。

4

2 に答える 2

1

display:none非表示の要素 ( ) を使用する代わりにvisibility:hidden

display:none要素が DOM の一部としてレンダリングされないことを意味します。
表示プロパティが別のものに変更されるまでロードされません。

visibility:hidden要素をロードしますが、表示しません。

于 2012-10-19T12:27:17.657 に答える
0

<script>の親要素をビューポート (css:) から完全に離して配置することで、これを解決しましたposition:absolute; left:-10000px;

次に、fixedオーバーレイを完全に分離 (つまり、兄弟) し、デフォルトで非表示にしました。

表示時にオーバーレイがfadeIn()編集され、フェードが完了すると、オフスクリーン コンテンツ要素が に設定されposition:fixed; left: 24px; top: 24px;ます。

再度非表示にすると、コンテンツは画面外にリセットされ、オーバーレイは で非表示になりfadeOut()ます。

オーバーレイz-indexはコンテンツよりも低くする必要があります。

于 2012-10-19T13:50:07.800 に答える