我在檢索鏈接到body標籤時遇到了問題。我已經試過:Opera中的Document.body
document.body
,不幸的是它是空- 搜索按標籤名身體,同時列舉的文檔孩子的,它的發現只有頭部標籤:(
document.getElementsByTagName
,返回undefined
我試圖在onload事件處理程序中獲取body標籤的鏈接。這是頁面的HTML代碼:
<html>
<head>
<title>Some page</title>
<script src="/adv.js" type="text/javascript"></script>
</head>
<body>
This is text
</body>
</html>
這裏adv.js
源代碼:中adLoader.js
(function() {
var myRandom = function (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
var myFunction = function() {
var newScriptAddr = '/adLoader.js?r=' + myRandom(1,1000000);
var fileref = document.createElement('script');
if (typeof fileref != "undefined")
{
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", newScriptAddr);
document.getElementsByTagName("head")[0].appendChild(fileref);
}
};
if (window.onload)
{
var currOnLoad = window.onload;
window.onload = function() {
currOnLoad();
myFunction();
};
}
else
window.onload = myFunction();
})();
的源代碼:
(function() {
var mainCnt = document.createElement('div');
mainCnt.appendChild(document.createTextNode('The text'));
var _body = document.body;
if (!_body)
{
var htmlTag = document.documentElement;
for(var i = 0; i < htmlTag.childNodes.length; i++)
{
if (htmlTag.childNodes[i].nodeName.toLowerCase() == 'body')
{
_body = htmlTag.childNodes[i];
break;
}
}
}
if (!_body)
_body = document.getElementsByTagName('BODY') [0];
if (!_body)
_body = document.getElementsByTagName('body') [0];
if (_body)
_body.appendChild(mainCnt);
else
alert('WTF!!');
})();
瀏覽器是Opera 11.10操作系統Ubuntu Linux操作系統。有沒有辦法獲得這個鏈接?我的目標是將position:fixed
的div添加到body標籤。
請附上JS代碼 – yoavmatchulsky
JS在哪裏?它是否在頁面內(如果是這樣,爲什麼我們不能在你的示例代碼中看到它)?它是否在擴展?小書籤?你如何將它附加到onload處理程序? – Quentin
Opera自己的開發站點有'document.body.appendChild()'的例子,所以奇怪它不起作用。 (http://dev.opera.com/articles/view/introduction-to-user-javascript/ - 雖然這個例子在使用之前測試了'document.body',但沒有解釋爲什麼它可能不可用。) – nnnnnn