因此,我使用trigger.io創建了一個頁面,其中底部有一個自定義菜單,每個按鈕都將一個外部HTML頁面加載到主容器中。我不得不進行這項工作,所以我想知道是否有更好的方法。Trigger.io動態加載頁面
我開始使用$('.main').load('pages/test.html')
,它不起作用。相反,我不得不這樣做:
forge.file.getLocal('pages/test.html', function (file) {
forge.file.string(file, function (str) {
$('.main').html(str);
});
});
這是有點麻煩。
另外,如果str
HTML內容爲img
標記,則img不會顯示,因爲src
屬性會混亂。所以我不得不做另一個黑客:
forge.file.getLocal('pages/test.html', function (file) {
forge.file.string(file, function (str) {
var $main = $('.main');
$main.html(str);
//Hack to resolve img src
var imgPath;
$main.find('img').each(function() {
var $this = $(this);
// First 8 chars is "file:///"
imgPath = $this.prop('src').substr(8);
forge.file.getLocal(imgPath, function (file) {
$this.prop('src', file.uri);
});
});
});
});
任何更好的方式純粹加載一個外部的HTML頁面沒有所有的麻煩?
謝謝!
該示例確實奏效。但是當我把它放在一個腳本中時,它不會。讓我解釋我流了一下: 我用Backbone.Router路由''標籤,並在每個路由我做了'$(「內容」)load'並沒有奏效。 另一個奇怪的是,過了一個晚上,我做了一個'僞造ios;僞造運行ios'和'window.location'不再有效,錯誤是當我重定向'window.location = login.html'時,它找不到'file:/// login.html'。它在前一天晚上工作。 不知何故,這太不穩定。 –
@LongHo目前還不清楚「當我把它放在腳本中」的意思。例如,我可以修改上面的示例,以便JavaScript在單獨的js文件中,並且仍然可以獲得上面顯示的結果。你能編輯你的原始問題,包括步驟來重現你的問題,包括代碼?用'window.location'來WRT你的問題,最好是創建一個關於它的單獨問題,包括重現步驟。 – monk
我的意思是當我把加載件放到一個單獨的腳本中並將其導入到'
'中時。現在我開始認爲這是模擬器的錯。 –