MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-08-06, 03:57

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 6 篇文章 ] 
發表人 內容
文章發表於 : 2007-04-18, 23:12 
離線

註冊時間: 2007-04-18, 22:48
文章: 7
下面這段javascript只能在IE使用,不能在firefox使用,要怎麼改才能在firefox裡使用呢?
代碼:
<html>
<head><title></title>
<script language="JavaScript1.1">
var img1 = new Image();
img1.src = "ap_20060728014313104.jpg";

var img2 = new Image();
img2.src = "ap_20060728014301639.jpg";

</script>

<head>
<body onLoad="init()">
<script language="JavaScript">

var maxLoops = 2;  //圖片總數
var bInterval = 2;  //圖片完全開啟之後,停留的時間,2=2秒
var count = 1;
function init() {
document.getElementById('blendtrjs').filters.blendTrans.apply();
document.images.blendtrjs.src = eval("img"+count+".src");
document.getElementById('blendtrjs').filters.blendTrans.play();
if (count < maxLoops) {
count++;
}
else {
count = 1;
}
setTimeout("init()", bInterval*500+2000);
}
</script><img src="ap_20060728014313104.jpg" id="blendtrjs" border="0" style="filter: blendTrans(duration=2);>

</body>
<html>


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.0.10) Gecko/20070216 Firefox/1.5.0.10
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-04-19, 07:07 
離線
[MozTW 版主群]
頭像

註冊時間: 2004-11-17, 09:53
文章: 1302
來自: 臺灣桃園
很可惜,沒有辦法,filter 的特效是 IE 專有的 @@"

_________________
在靜謐的國度裡,擁抱微風--抱風伴靜


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-04-19, 15:08 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
而且還用 eval() = =||| 甚麼年代了...
document.images.blendtrjs.src = eval("img"+count+".src");
可以改成
document.images.blendtrjs.src = window["img"+count].src;

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-04-21, 13:46 
原程式碼中 eval( "img"+count+".src") 的寫法,
使用 eval() 確實不是好主意,也無此必要,
直接寫成 = "img"+count+".src" 即可。
但是,每回執行時會分別建立暫存變數、
指定值 "img"、".scr" 給暫存變數,然後進行運算。
因此在快速循環處理的情形下,效能稍差。

kourge 寫:
可以改成
document.images.blendtrjs.src = window["img"+count].src;

不可以吧!?

建議改成:
代碼:
var count = 1, u='_', imgSrc="img_.src";
function init() {
....
document.images.blendtrjs.src = imgSrc.replace(u,count);
....


這樣 init() 每次執行時,直接由變數 u, imgSrc 取出運算。


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
  
引用回覆  
 文章主題 :
文章發表於 : 2007-04-26, 21:17 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
Anonymous 寫:
原程式碼中 eval( "img"+count+".src") 的寫法,
使用 eval() 確實不是好主意,也無此必要,
直接寫成 = "img"+count+".src" 即可。

直接寫成 "img"+count+".src" 就會直接把類似像 "img1.src" 這樣的字串指定給 document.images.blendtrjs.src,"img1.src" 又不是有效的 src 路徑。
eval( "img"+count+".src") 是為了把實際路徑,如 ap_20060728014313104.jpg,給取出來。
而全域變數 (global variables) 都可以藉由 window 來存取,再加上 foo.bar 跟 foo['bar'] 意思是一樣的,所以可以改成 window["img"+count].src。

代碼:
var x1 = {y: 'blah'};

var a = eval('x' + '1' + '.y');
var b = 'x' + '1' + '.y';
var c = window['x' + '1'].y;

b 會等於 'x1.y',a 和 c 會等於 'blah'。

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-04-29, 15:26 
離線
[網站管理員]
頭像

註冊時間: 2002-01-07, 19:28
文章: 3080
來自: 台灣
如果真有需要,請參考這篇:
http://www.brainerror.net/scripts_js_blendtrans.php
(關鍵字: blendtrans firefox)

_________________
雜工 :: 柏強 / Bob Chao
發問討論請保持禮節,在志工社群裡沒有人有「義務」要為您做些什麼。

* MozTW 志工無限招募中,開放網路世界需要您的一臂之力


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 6 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群