2012-02-02 5 views
0

Windows PhoneでWebBrowserコントロールを使用してJavaScript呼び出しを呼び出しています。今、スクリプトをオンラインで参照すると、コードはうまく動作します。しかし、私はそれをローカルで参照すると、それは壊れます。WebInvoke(WP7.5、Silverlight)用のhtmlファイルでjavascript srcを設定する方法

私はそれが孤立したストレージとWP7アプリケーションのインストール方法と関係があると思っていますが、私は他のものを手に入れたいと思っていました。

HTMLファイルが含まれています

<script type="text/javascript" src="scripts/myJavascript.js"></script> 

私は、ローカルファイルを参照する方法

<script type="text/javascript" src="http://mysite.com/myJavascript.js"></script>' 

とアイデアを行うときに、それだけで正常に動作しますか?私はそれをコンテンツとコピー常にに設定しました。最後に

、実際のファイルは、私は私のユーザーが私のアプリを使用するには、インターネットに接続する必要はありませんので、それはオフラインで作業して取得する必要がありますhttp://closure-library.googlecode.com/svn/trunk/closure/goog/base.js です。

ありがとうございます!

答えて

1

ローカルストレージにファイルをロードするために使用するコードは表示されていませんが、あなたのアプローチですぐに問題が発生することはありません。 PhoneGapのソースコードを見ることをお勧めします。このソースコードは、Webブラウザーでのレンダリングのために複数のファイルを独立したストレージにロードして、どのように動作するかを確認することをお勧めします。ここではPhoneGapのコードの関連opartがある:

fileResourceStreamInfo = Application.GetResourceStream(new Uri(file.path, UriKind.Relative)); 

if (fileResourceStreamInfo != null) 
{ 
    using (BinaryReader br = new BinaryReader(fileResourceStreamInfo.Stream)) 
    { 
     byte[] data = br.ReadBytes((int)fileResourceStreamInfo.Stream.Length); 

     string strBaseDir = AppRoot + file.path.Substring(0, file.path.LastIndexOf(System.IO.Path.DirectorySeparatorChar)); 

     if(!appStorage.DirectoryExists(strBaseDir)) 
     { 
      //Debug.WriteLine("Creating Directory :: " + strBaseDir); 
      appStorage.CreateDirectory(strBaseDir); 
     } 

     // This will truncate/overwrite an existing file, or 
     using (IsolatedStorageFileStream outFile = appStorage.OpenFile(AppRoot + file.path, FileMode.Create)) 
     { 
      Debug.WriteLine("Writing data for " + AppRoot + file.path + " and length = " + data.Length); 
      using (var writer = new BinaryWriter(outFile)) 
      { 
       writer.Write(data); 
      } 
     } 
    } 
} 
+0

ソースが何をすべきかのヒント以上に役立ったわけではありませんが、これはまさにそれでした。これを正しく行うためには、ファイルをアプリインストールからアイソレートされたストレージにコピーする必要があります。ありがとう! – Dave

1

コリンが言うように、相対パスは、ローカルにロードされたHTMLファイルすべてのファイルが最初に分離ストレージにコピーされ、そこからロードされなければならないので働くことのために。

関連する問題