我正在尋找將我的「NodeNumber」變量放入loadSynchPage函數的參數中。Javascript:插入一個變量作爲參數
我的代碼查看頁面的名稱(例如,從http://www.example.com/tree/page.htm開始的page.htm),並在一系列行後給出「NodeNumber」。我希望頁面能夠解決NodeNumber,並在頁面加載時將其放入函數中。 所以我想這將是這個樣子:
<BODY onload="loadSynchPage(NodeNumber);">
我已經使用帶有點擊數按鈕了我的代碼輸出將NodeNumber。 我也得到了loadSynchPage(linkID)函數,使用onclick在我自己輸入數字的地方使用按鈕。按鈕,也有一個我預先定義的工作變量;但我無法讀懂我的「NodeNumber」,我花了2天的時間試圖弄清楚這一點。
這裏是我的代碼:
<script>
function variables() {
//Getting the page's name from the URL
PageName = location.pathname.split("/").slice(-1);
document.getElementById("PageName").innerHTML = PageName;
//Converting the page name into a string
PageNameString = String(PageName);
document.getElementById("PageNameString").innerHTML = PageNameString;
//Converting the string of the page name, into it's length
PageLength = PageNameString.length;
document.getElementById("PageLength").innerHTML = PageLength;
//Setting the DemoFramesetNodes.js as a variable (Copy and Paste in - needs to have no " and be on one line)
TextFromDemoFramesetNodesJS = "foldersTree = gFld(<i>Page 1 Title</i>, page1.htm)//000foldersTree.treeID = Framesetaux1 = insFld(foldersTree, gFld(Page 2 Title, page 2.htm)) //001insDoc(aux1, gLnk(R, Page 3 Title, Page3.htm)) //002aux1 = insFld(foldersTree, gFld(Page 4 Title, Page4.htm)) //003insDoc(aux1, gLnk(R, Page 5 Title, Page5.htm)) //004";
//Need to set the difference BETWEEN the "m" in htm and the start of the number
//e.g. page2.htm)) //001
CharacterDifference = "5";
document.getElementById("CharacterDifference").innerHTML = CharacterDifference;
//Need to find the location of the page's name from the DemoFramsetNodes
PageNameLocation = TextFromDemoFramesetNodesJS.lastIndexOf(PageNameString);
document.getElementById("PageNameLocation").innerHTML = PageNameLocation;
//Need to convert all variables to be added into numbers
PageNameLocationNumber = Number(PageNameLocation);
PageLengthNumber = Number(PageLength);
CharacterDifferenceNumber = Number(CharacterDifference);
document.getElementById("CharacterDifferenceNumber").innerHTML = CharacterDifferenceNumber;
//Add the variables to give us the start location of the Node Number
NodeNumberStart = PageNameLocationNumber + PageLengthNumber + CharacterDifferenceNumber;
document.getElementById("NodeNumberStart").innerHTML = NodeNumberStart;
//Add the variables to give us the end location of the Node Number
NodeNumberEnd = PageNameLocationNumber + PageLengthNumber + CharacterDifferenceNumber + 3;
document.getElementById("NodeNumberEnd").innerHTML = NodeNumberEnd;
//this gives us the Node Number that we want
NodeNumber = TextFromDemoFramesetNodesJS.substring(NodeNumberStart, NodeNumberEnd);
document.getElementById("NodeNumber").innerHTML = NodeNumber;
}
var avar=Number(window.NodeNumber);
//window.NodeNumber;
function loadSynchPage(linkID) {
var folderObj;
docObj = parent.treeframe.findObj(linkID);
docObj.forceOpeningOfAncestorFolders();
parent.treeframe.HightlightNode(linkID,docObj.link,'basefrm');
if (typeof parent.treeframe.document.body != "undefined") // To handle scrolling not working with NS4
parent.treeframe.document.body.scrollTop=docObj.navObj.offsetTop
}
//myvar=Number(NodeNumber);
// function loadnode(){
// document.getElementById('loadSynchPage').onclick=function(){loadSynchPage(myvar);};
// var myvar=15;
//function init(){
// document.getElementById('EditBanner').onclick=function(){EditBanner(myvar);};
// }
</script>
</head>
<BODY>
<button onclick="javascript:settingvariables();">Page Highlight1</button>
<button onclick="javascript:loadSynchPage(avar);">Page Highlight2</button>
Page Name: <p id="PageName"></p>
Page Name String: <p id="PageNameString"></p>
Page Length: <p id="PageLength"></p>
Character Difference: <p id="CharacterDifference"></p>
Page Name Location: <p id="PageNameLocation"></p>
Character Difference Number:<p id="CharacterDifferenceNumber"></p>
Node Number Start: <p id="NodeNumberStart"></p>
Node Number End: <p id="NodeNumberEnd"></p>
Node Number: <p id="NodeNumber"></p>
你可以從「//」接近底部,我已經嘗試過其他問題的一些不同的方式計算器上看到 - 我相信我已經嘗試了一切並且錯過了一些非常簡單的東西:/ 在w3之後,在設置諸如PageName和NodeNumber之類的東西之前,我還拿出了「var」,然後讓它們成爲全局變量?
爲了提供更多的信息:
的代碼是基於TreeView的 - 它與左側節點樹並單擊節點上右手架打開頁面。然而,點擊從右頁中的頁面到不同頁面的鏈接不會更新節點上的突出顯示,這就是爲什麼我正在嘗試執行此操作(onload)。
編輯:如果可能我還想將代碼放到一個外部的.js中,並引用它,因爲我有多個頁面(我上週用不同的工作代碼試了幾個小時,但也不能得到這個工作要麼)。
非常感謝!我已經設法讓它按照我的想法工作:D – Josh