MozTW 討論區
https://forum.moztw.org/

java script 無法完整執行
https://forum.moztw.org/viewtopic.php?f=2&t=5296
1 頁 (共 1 頁)

發表人:  新手 [ 2004-12-27, 11:56 ]
文章主題 :  java script 無法完整執行

我這個網頁用 ff 瀏覽有問題
http://mail.cycivs.tcc.edu.tw/~jiang/XnView/XnView.htm
請問有無完整java 應用在ff 教學可參考

發表人:  BobChao [ 2004-12-27, 14:08 ]
文章主題 : 

新手 寫:
我這個網頁用 ff 瀏覽有問題
http://mail.cycivs.tcc.edu.tw/~jiang/XnView/XnView.htm
請問有無完整java 應用在ff 教學可參考


代碼:
if (navigator.appName == "Netscape") {
   layerStyleRef="layer.";
   layerRef="document.layers";
   styleSwitch="";
   ns=1;
}


提醒您:新版的 Netscape 應該都沒 document.layers 這玩意了...
新版 IE 跟 Netscape 都支援 document.getElementById('LayerID').style 的作法

完整java 應用在ff 教學可參考... 是什麼意思...
「適用於 FF 的完整 JavaScript 教學可供參考」?

發表人:  danielwang [ 2004-12-27, 18:49 ]
文章主題 :  DOM 的小介紹

JavaScript != Java

再重覆 Bob 的話,用 99% 都可支援的 document.getElementById()。現在 IE4 和 Netscape4 加起來市場佔有率都不到 1%,所以 document.all[] 和 document.layers[] 都可以退休了

用名稱存取物件:
代碼:
<div id="abc">
:
element = document.getElementById('abc');


用標籤存取物件(陣列):
代碼:
<img>
:
imgs = document.getElementsByTagName;
img0 = imgs[0];


設定屬性 (一):
代碼:
element = document.getElementById('bannerImg');
element.src  = "banner.png";
element.style.border = "none";


設定屬性 (二):
代碼:
element.setAttribute("src","banner.png");


樣示存取 (一):
代碼:
// 語法: 物件.style.樣示特性

// JS 語法 o.style.color = CSS 語法 { color: }
element.style.color = "red";

// JS 語法 o.style.backgroundImage = { background-image }
element.style.backgroundImage = "bg.png";

// JS 語法 o.style.setProperty(prop,val) = { prop: val; }
element.style.setProperty("-moz-opacity", 0.2);

// 長度一定有單位,利如 element.style.top returns "100px" (而不是 100)
top = parseInt(element.style.top);
top += 100;
element.style.top = top + 'px'; // 往下100個像素


樣示存取 (二):
代碼:
// 一些樣示 (如 top) 會在顯示處理 (render) 後才有意義
// getComputedStyle() 取得即時計算出的樣式特性
top = parseInt(element.getComputedStyle('top'));


其它物件存取:
代碼:
//找文件中第一片斷文字
body = document.body; // 取 <body> 物件
element = body.firstChild; // 取 <body> 內第一個子物件

// firstChild returns 第一個子物件
// lastChild returns 最後一個子物件
// parent returns 母物件

var text = '';
while (text != "") {
  // 物件可以是<!--註釋-->、元素、文字等等
  // 用 NodeType 查,常見的有
  //  ELEMENT_NODE 1 元素
  //  TEXT_NODE 3 文字
  //  COMMENT_NODE 8 註釋
  if (element.NodeType == ELEMENT_NODE) {
    // 是元素。為求簡潔,走個捷徑
    // innerText 代表元素內文字
    text = element.innerText;
    break;
  }
  if (element.NodeType == TEXT_NODE) {
    // nodeValue 指節點(物件)的值。
    // 文字節點的值就是文字。
    // 註:nodeValue 是 read only
    text = element.nodeValue;
    break;
  }
  // 在 <body> 中後面屬同層的物件;
  // (要前面的同層物件則用 previousSibling;)
  element = element.nextSibling;

}// end while


設內容
對簡單的 script,firstChild、nextSibling 的有點煩。用 innerText 與 innerHTML 有時比較快
代碼:
// 取代內部所有的 HTML
element.innerHTML = "<strong>text</strong>";
// 取代內部所有的文字
element.innerText = "hi";


建立物件
用 innerText 或 innerHTML 雖然簡單,可是對複雜,物件/文字一個一個加入或刪除的 script 不適用
代碼:
// 建立新的 <p> 元素
newP = document.createElement("P");
// 建立新的文字
newText = document.createTextNode("hello world");
// 把文字加到新的 <p> 元素內
// 這些物件還不會出現
newP.appendChild(newText);
// 加到 <body> 內後才會出現
document.body.appendChild(newP);

發表人:  member [ 2004-12-27, 19:06 ]
文章主題 : 

DOM 的小介紹, 這篇回覆文章不錯.

發表人:  新手冊 [ 2004-12-28, 18:04 ]
文章主題 : 

我已經依照高手指引以下列程式碼修改完成


function showLayer(layerName) {
element = document.getElementById(layerName);
element.style.visibility="visible";
}

function hideLayer(layerName)
{
element = document.getElementById(layerName);
element.style.visibility="hidden";
}

function moveLayerto(layerName,top,left){
element = document.getElementById(layerName);
element.style.top=top+'px';
element.style.left=left+'px';
}

用這三個function 來顯示和隱藏功能表單

發表人:  danielwang [ 2004-12-28, 20:01 ]
文章主題 : 

其實不用那麼麻煩
你可以用 display:none|block 就好了

如果你有
<div id="div1">one</div>
<div id="div2">two</div>
<div id="div3">three</div>
而 div2 是 { display:none; } 的話,瀏覽器會顯示
one
three

反之,如果三個 <div> 都是 position:absolute,而 div2 是 { visibility: hidden; } 的話,則瀏覽器會顯示
one
(空出 div2 的空間)
three

所以你可以用以下的語法:
代碼:
<style type="text/css">
  dl.menu dd { margin-left: 0px;}
  dl.menu dd ul { padding-left: 0px; }
  /* display 是顯示模式
    block 為區塊層
    inline 為文字層/同軸
    none 為無
    list-item 為清單項目
    等等
  */
  dl.menu dd ul li { display: block; // 預設 list-item }
</style>
<script type="text/javascript">
  function toggleMenu(id) {
     menuList = document.getElementById(id);
     if (menuList.style.display != 'none')
       menuList.style.display = 'none';
     else
       menuList.style.display = 'block';
  }
</script>
<dl class="menu">
  <dt><a href="#" onclick="toggleMenu('menu1');return false;">XnView起手式</a></dt>
  <dd id="menu1">
    <ul>
      <li><a href="features.html">程式特色</a></li>
      <li><a href="install.html">安裝過程</a></li>
    </ul>
  </dd>
</dt>


還有,我還是建議你不要用 <frameset>。

人手不夠。有興建整理 DOM 方面的說明文件嗎?你可以邊學邊作。

發表人:  訪客 [ 2004-12-29, 15:40 ]
文章主題 : 

1.感謝指導但是目前對dom是有興趣
但是都不懂要如可來寫文件
目前時間不夠用,因為xnview還没寫完
如果寫完再來協助 dom
2.為何不要<frameset>呢那要什麼???



dwx 寫:
其實不用那麼麻煩
你可以用 display:none|block 就好了

如果你有
<div id="div1">one</div>
<div id="div2">two</div>
<div id="div3">three</div>
而 div2 是 { display:none; } 的話,瀏覽器會顯示
one
three

反之,如果三個 <div> 都是 position:absolute,而 div2 是 { visibility: hidden; } 的話,則瀏覽器會顯示
one
(空出 div2 的空間)
three

所以你可以用以下的語法:
代碼:
<style type="text/css">
  dl.menu dd { margin-left: 0px;}
  dl.menu dd ul { padding-left: 0px; }
  /* display 是顯示模式
    block 為區塊層
    inline 為文字層/同軸
    none 為無
    list-item 為清單項目
    等等
  */
  dl.menu dd ul li { display: block; // 預設 list-item }
</style>
<script type="text/javascript">
  function toggleMenu(id) {
     menuList = document.getElementById(id);
     if (menuList.style.display != 'none')
       menuList.style.display = 'none';
     else
       menuList.style.display = 'block';
  }
</script>
<dl class="menu">
  <dt><a href="#" onclick="toggleMenu('menu1');return false;">XnView起手式</a></dt>
  <dd id="menu1">
    <ul>
      <li><a href="features.html">程式特色</a></li>
      <li><a href="install.html">安裝過程</a></li>
    </ul>
  </dd>
</dt>


還有,我還是建議你不要用 <frameset>。

人手不夠。有興建整理 DOM 方面的說明文件嗎?你可以邊學邊作。
:P :P

發表人:  danielwang [ 2004-12-29, 16:17 ]
文章主題 :  為何不要<frameset>

Anonymous 寫:
2.為何不要<frameset>呢那要什麼???

<frameset> 問題
1. 你不可以把網頁傳給別人:不管現在在甚麼子頁面,位址列上一直都是首頁的位址,一般訪客如果想把某頁面推薦給別人,常常會變成把首頁網址傳過去
2. 有人問你你網上有沒有 XXX,你是要如何給它網址?
3. 搜尋器到現在還無法完全的支援分頁框。搜尋器只能連到子頁面,但這頁面會缺乏讓訪客瀏覽到其它網站上相關資訊的功能。
4. 沒辦法 bookmark 網頁

server-side include 應該可以解決這問題。沒有的話就直接把 menu 加到所有 HTML 檔了。

發表人:  kouken [ 2004-12-29, 22:42 ]
文章主題 : 

http://student.thu.edu.tw/~s911552/hanabi

這個網頁的java script選單用firefox出不來......
是還沒支援到嗎???

發表人:  danielwang [ 2004-12-30, 00:49 ]
文章主題 : 

http://student.thu.edu.tw/~s911552/hanabi/left.htm
Outline.onclick = javamagic; 應該是 document.getElementById('Outline').onclick = javamagic;
事件處理的語法好像也要改

發表人:  kouken [ 2004-12-30, 01:13 ]
文章主題 : 

dwx 寫:
http://student.thu.edu.tw/~s911552/hanabi/left.htm 的
Outline.onclick = javamagic; 應該是 document.getElementById('Outline').onclick = javamagic;
事件處理的語法好像也要改

感謝指導
小第會再努力的~

發表人:  kouken [ 2005-01-01, 23:25 ]
文章主題 : 

kouken 寫:
dwx 寫:
http://student.thu.edu.tw/~s911552/hanabi/left.htm 的
Outline.onclick = javamagic; 應該是 document.getElementById('Outline').onclick = javamagic;
事件處理的語法好像也要改

感謝指導
小第會再努力的~


結果還是不知道要怎改..... = =

發表人:  danielwang [ 2005-01-02, 22:28 ]
文章主題 : 

未測試:
代碼:
function javamagic(e) {         
var targetId, srcElement, targetElement;
if (typeof(e)=='undefined') e = event;
srcElement =e.srcElement;

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/