2016-04-04 8 views
0

アプリケーションではを使用して、mshtml.HTMLDocument内のmimetypeを抽出しています。mshtml.IHTMLElement getAttribute erratic behavior

例:

www.mywebsite.com/index.html。このWebページには1つのMIMEタイプがあり、Excelワークブックです。

Dim oHTML_Element As mshtml.IHTMLElement 
Dim HTMLDoc As mshtml.HTMLDocument 

HTMLDoc = CType(oBrowser.Document, mshtml.HTMLDocument) 
'//mimtype = "Microsoft Office Excel 97-2003 Worksheet" 

For Each oHTML_Element In HTMLDoc.getElementsByTagName("a") 
    If oHTML_Element.getAttribute("mimetype") is Nothing then 
     MsgBox ("NONE FOUND") 

    Else 
     MsgBox(oHTML_Element.getAttribute("mimetype").ToString()) 

    End If 
End For 

問題: 私はそのWebページにアクセスしたとき、私はポップアップMsgBox私の同僚がで座ってこのアプリケーションを実行しているMIMETYPE 表示を取得し、場所-1(アジア太平洋地域)に座ってこのアプリケーションを実行していますlocation-2(アジア)、そのウェブページにアクセスすると、彼はポップアップMsgBoxNONE FOUNDと表示します。 ウェブページへのアクセスは問題ではなく、同じ時間とその静的なページについてウェブページにアクセスしています。つまり、地理的位置に基づいてMIMETYPEには対応していません。彼は手動でブラウザに入り、リンクをクリックすることでExcelワークブックにアクセスできます。

答えて

0

私は最終的にそれを理解したと思います!

ここでの原因はmimeTypeです。私のマシンでは、MS Office 2010をインストールしましたが、友達のマシンにはOffice 365があります。

mimeType = "Microsoft Office Excel 97-2003 Worksheet"mshtml.HTMLDocumentの中で私のC#コードの中に探していました。今、私の友人のマシンでレンダリングされたウェブページの同じmimeTypeを検索すると、Noneが返されました。問題は、マシンにOffice 365がある場合はmimeType = "Microsoft Excel 97-2003 Worksheet"、以前のバージョンのOfficeの場合はmimeType = "Microsoft Office Excel 97-2003 Worksheet"となり、XLSmimeType = "Microsoft Excel 97-2003 Worksheet"になります。