2013-08-23 30 views
0

我需要在使用Durandal框架構建的SPA應用程序中顯示pdf文件。我利用「attr」knockout數據綁定在運行時提供此pdf文件的URL。在對象標籤中顯示PDF文件

<object data-bind="attr: { data: DocumentUrl() }" type="application/pdf" style="width: 100%; height: 100%"></object> 

所發出的HTML正確顯示標籤,

<object data="http://127.0.0.1:10000/devstoreaccount1/documents/TradeOverview.pdf" type="application/pdf" style="width: 100%; height: 100%; margin-right: 0px; margin-left: 0px; display: block; opacity: 1;" data-bind="attr: { data: DocumentUrl() }" data-view="durandal/../../templates/TnC/TnCDetails" data-active-view="true"></object> 

然而,pdf文件不會被顯示在瀏覽器! 當我在示例HTML文件中運行上面發出的HTML時,它可以工作。不知道爲什麼它沒有通過我的主應用程序顯示。任何指針?

謝謝。

+0

嘿看看這個計算器等回答有關把它的iframe中,而不是:http://stackoverflow.com/questions/12974115/to-open-pdf-file-in-iframe – Mark

+0

嘿感謝馬克..!剛剛嘗試過,它工作正常。出於好奇,標籤的任何已知問題? –

回答

0

這是因爲瀏覽器不一致地處理動態<對象>標籤,並且通常這些標籤是由ActiveX控件實現的,它們不會偵聽對象標籤的更改。

2個選項追求:

  1. 使用iframe,並將其指向您的PDF。這將導致瀏覽器本地處理PDF(例如,Chrome使用自己的引擎顯示PDF,Firefox使用JavaScript庫顯示PDF,IE使用ActiveX ...)。

  2. 而不是數據綁定的對象標籤,如果PDF更改,只需刪除對象標籤,並在其位置寫一個新的。瀏覽器可以很好地改變DOM。

相關問題