[問題] 外部javascript想知道頁面是否載入完成
請問各位大大,我參考google +1跟facebook Like按鈕的做法,
有一個頁面,動態引入一個外部js,
該外部js想讀取頁面上的一個元素,並對這個元素做一些操作,
該頁面html如下:(test.html)
--------------------------------------
<html>
<head>
<script type="text/javascript">
(function() {
var newObj = document.createElement('script');
newObj.type = 'text/javascript';
newObj.charset = 'UTF-8';
newObj.async = true;
newObj.src = 'extjs.js';
var oldObj = document.getElementsByTagName('script')[0];
oldObj.parentNode.insertBefore(newObj, oldObj);
})();
</script>
</head>
<body>
<div id="Div1"></div>
</body>
</html>
外部js如下:(extjs.js)
--------------------------------------
(function() {
var _Div1 = document.getElementById('Div1');
alert(_Div1); //Firefox, IE, Chrome可以抓到, Opera則顯示null
})();
有問題的地方在 alert(_Div1) 那裡,
Firefox, IE, Chrome都可以抓到這個div元素,但是Opera抓不到(顯示null),
我想請問要怎麼在extjs.js知道test.html的DOM已經都載入完成了?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.70.99
推
05/01 22:54, , 1F
05/01 22:54, 1F
to tfshnike: 請問這個要放在哪邊呢?
推
05/01 23:02, , 2F
05/01 23:02, 2F
→
05/01 23:03, , 3F
05/01 23:03, 3F
to arthas1107: 這個頁面沒有用jquery,因為我想全部在extjs.js處理
例如置放Google +1按鈕的code是
(function() {
var po = document.createElement('script'); po.type = 'text/javascript';
po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
然後把<g:plusone size="medium"></g:plusone>放在任何一個地方都可以
※ 編輯: On1earth 來自: 114.34.70.99 (05/01 23:18)
→
05/02 11:52, , 4F
05/02 11:52, 4F
→
05/02 11:52, , 5F
05/02 11:52, 5F
→
05/02 12:37, , 6F
05/02 12:37, 6F
→
05/02 12:37, , 7F
05/02 12:37, 7F
to xiphoid大:
我想把ded domready放進我的extjs.js,用匿名函數包起來,不想讓外面呼叫它,
function() {
//這裡是ded domready的code
})();
可是我在外面還是可以呼叫的到它,請問應該要怎麼做呢?
這幾天都在研究它,但是看不懂!function (name, definition){...}這一段的意思
※ 編輯: On1earth 來自: 61.231.222.213 (05/07 01:17)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):