1

Win8メトロアプリにiframe経由で外部Webサイトを埋め込むときに問題が発生します。

私はいつものようにそれをします

<iframe src="http://d1303.de/boom.htm"></iframe>

埋め込まれたWebページに深刻な問題がある場合(javascriptエラー...、http://d1303.de/boom.htmの場合のように)、アプリ全体がクラッシュし、VisualStudioがスクリプトファイルの何かについて文句を言います含まれているウェブサイトの奥深く。

リモートiframeを扱うときに考慮しなければならない特別なことはありますか?

4

2 に答える 2

0

私はmsdnフォーラムでこの質問をしましたが、ついにここでSteven Chengから助けとなる回答を得ました:

Windows StoreのJavaScriptベースのアプリケーションの場合、iframeを介して参照される外部Webページは、ローカルページ(プロジェクトコンテンツフォルダーからロードされる)とは異なるコンテキストでロードされます。したがって、iframeでホストされている外部ページは一部のシステムAPIとリソースにアクセスできなくなります。

あなたの場合、iframeでホストされている外部ページによってメインのWindowsストアアプリ(ホストアプリケーション)がクラッシュすることはないと思います。簡単なテスト用のWindowsStorejavascriptアプリを作成し(ナビゲーションプロジェクトテンプレートを使用)、iframe要素に「http://d1303.de/boom.htm」ページを表示するページを追加しました。これが私が持っている振る舞いです:

1)「Ctrl + F5」から開始するときにiframeページに移動すると、スクリプトエラーがあるため、ページはiframeコンテンツを読み込めませんでした。しかし、ホスティングアプリはクラッシュせず、他のページに戻ることができます。他のページでうまく機能します。

2)「F5」から開始してアプリケーションをデバッグする場合、iframeページに移動するとVisualStudioに侵入します。これは、アプリケーションで未処理のjs例外が発生すると、デフォルトのデバッグ設定がVS IDEに侵入するためです([デバッグ]-> [例外...]メニューで構成を確認できます)。また、「続行」を選択した場合でも、アプリは先に進んで機能します(他のページに移動して機能します)。

したがって、iframeで参照されているページのスクリプトエラーは、それ自体のページを壊してしまいます。javascript / htmlベースのWindowsストアアプリにロードされたWebページのさまざまなコンテキストの詳細については、次の本が非常に役立ちます。

無料の電子書籍:HTML、CSS、およびJavaScriptを使用したWindows 8アプリのプログラミング(最初のプレビュー) http://blogs.msdn.com/b/microsoft_press/archive/2012/06/04/free-ebook-programming-windows-8- apps-with-html-css-and-javascript-first-preview.aspx

于 2012-11-21T08:48:08.137 に答える
-1

こんにちは。Windows8では他のドメインから注入できないため、コード内にiframeを埋め込むことはできませんが、できることは次のとおりです。

div内にinnerHTMLを設定し、応答を他のURLに静的に設定するよりも、divを作成できます。次のように試すことができます。

--- HTML ---

<div id="container"></div>

--- JS ---

WinJS.xhr({
url: 'http://yourwebsitehere'
}).done(function (result) {
     var domContainer = document.getElementById("container");
     domContainer.innerHTML = toStaticHTML(result.response);
});

ただし、全体的にiframeのようには機能しませんが、他のドメインのページを表示したいだけの場合は、引き続き使用できます。

-ユサクセティアワン-

http://apptivate.ms/apps/1271/mathboard

于 2012-11-15T01:05:02.140 に答える