假設當前頁面是some1.html,並且有第二個頁面some2.html。如何使用JavaScript從some1.html訪問「some2.html」中的DOM元素?如何從當前html中訪問其他html的dom元素
回答
你不能。
您的代碼顯示新頁面正在加載在同一個窗口中。
頁面1的JavaScript環境在頁面2的環境創建之前將消失。由於它們不同時存在,因此不能從另一個DOM中訪問它們。
你可以做的是將一些數據存儲在localstorage或cookie中,並讓你放置在page2中的代碼查找這些數據並根據它說的運行JS。
你可以試試Ajaxh,因爲正如Quentin所說,改變window.location.href
會加載chaned文件。或使用iframe這樣的:
var frame= document.createElement('iframe');
frame.setAttribute('src', 'some2.html');
frame.setAttribute('name', 'some2');
frame.appendTo(body);
var some2 = document.frames['name'];
//now you can acces to some2 with getElementById,...
你能做到這一點的方法是使用AJAX:
$.get(url, function(data) {
var $doc = $(data);
});
你可以用它來從URL獲取內容,並用它做什麼。
作爲對您編輯的迴應:您可以通過執行$doc.find('selector')
而不是通常的jQuery $('selector')
來訪問DOM元素。
您也可以使它更容易一點做:
在這種情況下$.get(url, function(data) {
var $doc = $(data);
var $d = $doc.find;
});
你可以使用語法$d('selector')
。
你會做到這一點沒有jQuery的方式安裝的是:
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'document';
xhr.send();
xhr.onload = function(e) {
var doc = e.target.responseXML;
}
,然後你可以通過doc.getElementById('id')
訪問DOM元素,就像你通常選擇元素,但使用doc
,而不是document
。
注:這些功能,$doc
,$d
和doc
變量只在回調函數中訪問的(所以他們只有他們定義成函數內訪問)。
您的非jQuery示例不是瀏覽器不可知的。 –
哦,我不知道。那麼什麼部分不起作用呢? – Joeytje50
我相信IE <= 6,'XMLHttpRequest'沒有定義(我知道,IE的兼容性很痛苦)。這不是一個大問題。我贊成你的回答,但認爲這值得一提。 –
- 1. 訪問其他html頁面的元素?
- 2. 如何從元素中排除其他元素的html()?
- 3. 如何訪問其他html頁面的元素?
- 4. php - 簡單的HTML DOM - 其他元素之間的元素
- 5. 如何通過Javascript訪問HTML DOM中元素的字段?
- 6. 如何獲得DOM元素的當前HTML
- 7. 訪問html元素?
- 8. 如何訪問輸入元素的HTML
- 9. 如何訪問HTML元素的ID
- 10. 訪問HostListener的HTML元素
- 11. 使用`.childNodes`從javascript訪問HTML DOM元素
- 12. 如何訪問DOM中的元素?
- 13. 從DOM中刪除html元素
- 14. HTML - Python如何訪問表單元素?
- 15. 如何FireWatir訪問此HTML元素
- 16. HTML元素其插入到DOM
- 17. C#從其他線程訪問元素
- 18. 如何從商店訪問控件中的HTML元素?
- 19. 如何將XML DOM元素轉換爲HTML DOM元素?
- 20. 使用簡單的HTML獲取當前元素DOM
- 21. DOM:尋找一個HTML元素的當前滾動背景
- 22. 在當前狀態下複製DOM元素的HTML源代碼
- 23. 如何從其他網站獲取html元素的值MVC
- 24. jquery $ .fn從html元素訪問對象
- 25. 從javascript訪問html表單元素
- 26. 如何讓Silverlight訪問我的HTML DOM
- 27. 如何將一個html元素粘貼到其他元素?
- 28. 使用jQuery元素訪問html元素?
- 29. 從舊的HTML DOM元素創建JSON
- 30. 訪問其他進程中的元素
你打開它通過'window.open'什麼的? – putvande
總之,你沒有。 AFAIK每一個現代瀏覽器都會將它作爲XSS進行分類,並阻止在另一個窗口上操作DOM元素的任何嘗試。但是,如果窗口是用'window.open'打開的,並且在同一個域上,可能會被允許。 –
如果你現在查看我的答案,你會發現一個額外的部分,我進一步解釋如何做到這一點。 – Joeytje50