2012-12-18 56 views
1

我有一個code.js文件,該文件包含以下內容:mainDiv.innerHTML =外部文件

DivDialogHTML = function(){ 
    var mainDiv = document.createElement("div"); 
    mainDiv.id = "optin_settings_dialog"; 
    mainDiv.className = "OptinDialog"; 
    mainDiv.innerHTML = "<div>Text</div>"; 
} 

加載彈出(不知道這是否是所有的代碼,但得到的想法)代碼:

DivDialogOverlayHTML = function(){ 
    var mainDiv = document.createElement("div"); 
    mainDiv.id = "optin_settings_overlay_dialog"; 
    mainDiv.className = "OptinDialog"; 
    return mainDiv; 
} 


renderOptinWindow = function(){ 
    var pageHead = document.getElementsByTagName("head")[0]; 
    var pageBody = document.getElementsByTagName("body")[0]; 
    if(pageHead && pageBody){ 
    pageBody.appendChild(this.getDivDialogHTML()); 
    } 
} 

而不是使用mainDiv.innerHTML = '<div>Text</div>'我想mainDiv.innerHTML打開另一個文件(Dialog.html)。
我該怎麼做?

+0

如果你想打開你的當前頁面內的另一個頁面,你可以使用iframe。 – mkey

回答

0

你的意思是另一個窗口?如果是的話,請看看window.open

window.open

創建新窗口後,你把它的內容和顯示

+0

js代碼實際上會打開一個彈出窗口(不是在新窗口中,而是在頁面內)。這就是爲什麼代碼是在innerHTML中編寫的。 但我想爲此打開一個外部文件。 我希望我的客戶編輯Dialog.html文件而不是code.js. –

+0

我也嘗試了iframe方法,但那也不是我想要的。 –

+0

請指定您希望得到的結果 – Moseleyi

2

使用Ajax。但爲什麼不使用jQuery?

$('.selector').load(url); 

你的情況,你必須先像這樣的jQuery的插入你的

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

而不是採取現有的功能,並改變它這樣

DivDialogHTML = function(){ 
    var $mainDiv = jQuery("div"); 
    $mainDiv.attr('id', "optin_settings_dialog"); 
    $mainDiv.addClass("OptinDialog"); 
    /* $mainDiv.html("<div>Text</div>"); */ 
    $mainDiv.load('Dialog.html'); 
} 
+0

嗯不知道如何實現這些解決方案..代碼不是由我建立的。 –

0

,如果你不想要使用jQuery您可以使用iframe

HTML

<iframe id="optin_settings_dialog"></iframe> 

的Javascript

document.getElementById("optin_settings_dialog").src="Dialog.html";