我一直在尋找這個答案的好幾個小時,並且儘管關於如何在項目中包含文件有許多主題(這裏也在Stack Overflow中),但我還沒有找到解決我的問題。包括來自外部.js文件的對象
我正在從事一個項目,我想從一個時間,從許多不同的文件(我不想包括文件本身,只有他們的內容)包括一個單一的對象。所有文件中的所有對象都具有相同的名稱,只有內容不同。
重要的是,我不會在頁面的頭部獲得SCRIPT標記,因爲文件中的所有內容將具有相同的名稱。無論如何,這些文件都不會有函數,只有一個單獨的對象,需要在這個時候加載一個對象,然後在下一個元素被加載時丟棄。
對象將保存將顯示在頁面上的數據,並且它們將通過'onclick'事件從菜單中調用。
function setMenu() // The menu is being build.
{
var html = '';
html += '<table border="0">';
for (var i = 0; i<menu.pages.length; i++)
{
html += '<tr class="menuPunkt"><td width="5"></td><td onclick="pageName(this)">'+ menu.pages[i] +'</td><td width="5"></td></tr>';
}
// menu is a global object containing elements such as an array with
// all the pages that needs to be shown and styling for the menu.
html += '</table>';
document.getElementById("menu").innerHTML = html;
style.setMenu(); // The menu is being positioned and styled.
}
現在,當我點擊菜單項的頁面名稱功能被觸發,我發送的HTML元素的功能以及,正是在這裏,我想從我的外部文件中的內容被加載到一個局部變量並用於顯示頁面上的內容。
我想要的答案是「如何將外部obj加載到我需要它的函數中?」 (它可能是一個外部文件,但僅限於未包含在項目的頭部分中)。我仍然從我自己的本地庫中加載該文件。
function pageName(elm) // The element that I clicked is elm.
{
var page = info.innerHTML; // I need only the innerHTML from the element.
var file = 'sites/' + page + '.js'; // The file to be loaded is created.
var obj = ?? // Here I somehow want the object from the external file to be loaded.
// Before doing stuff the the obj.
style.content();
}
從外部文件中的內容看起來是這樣的:
// The src for the external page: 'sites/page.js'
var obj = new Object()
{
obj.innerHTML = 'Text to be shown';
obj.style = 'Not important for problem at hand';
obj.otherStuff = ' --||-- ';
}
任何幫助將不勝感激,
莫爾
你有沒有看看迪朗達爾和RequireJS? –
我在想我應該可以直接用JS做。如果可能的話,我寧願不使用JQuery或其他類型的JS。有了JS所能做的所有事情,這也應該是可能的。 – Molle
這絕對是可能的,但爲什麼重新發明輪子? –