Re: [問題] Javascript 的問題

看板Web_Design作者 (me so f**ked up!)時間19年前 (2006/08/10 00:16), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《kenshieh ( )》之銘言: : ※ 引述《kenshieh ( )》之銘言: : : 標題: [問題] Javascript 的問題 : : 時間: Wed Aug 9 15:04:28 2006 : : 請問, : : 假設我有一個 .js 會回傳一些用 document.write(); 產生的結果,但我想把這結果 : : 先暫存起來,以便以後的運用,那我要怎麼做呢? : : 舉例如下(以 test.js 為例): : : <!-- 下面回傳一個 document.write('test'); 的結果 --> : : <script src='test.js'></script> : : 上面這行會產生 "test" 字串,但我要怎麼做去把 test 暫存於 javascript 的一個變數 : : 裡而不是直接產生於網頁上呢? 謝謝。 : : -- : : ◆ From: 140.119.164.204 : : 推 alpe:變數 08/09 15:06 : : 推 kenshieh:你好, 我知道用變數, 問題是要怎麼去接它呢? 08/09 15:45 : : 推 grassboy2:在js檔裡面寫個var buffer_test;要用的時候直接存取… 08/09 18:45 : : → grassboy2:先用buffer_test+="test"要讀出時再用document.write() 08/09 18:47 : 謝謝 grassboy2 的回答 : 但可能各位還是誤解我的意思了 : 我的意思,目前有一個 .js 的檔案,但這個檔案我是無法去變更它的內容的 : 他的內容很簡單,就是一些 document.write(); : 問題來了,我要怎麼用變數去接由 .js 產生的內容呢? : 下面這個有問題的程式應該可以了解我要的意思。 (以下用 test.js 當範例) : <!-- 以下是有問題的程式 --> : <script> : // 我要如何得到 test.js 產生的內容呢? 且我要放到 cont 這變數中。 : var cont = document.write("<script src='test.js'></script>"); : </script> 我第一次看過這麼奇怪的需求 您的test.js程式設計上就是要寫入一些內容至網頁 您反而不要這個程式做寫入的動作 但又想知道它會寫入的內容 '正常'唯一的方法就是改原來的程式阿 既然您都說test.js不能改了 好吧... 那就硬上了: 我是有想到兩三個辦法, 最簡單且最笨的就是依舊讓test.js程式寫入內容至網頁 寫入至一個暫時的element中 另外依靠css的display:none讓這個element 就算有內容也看不到 (但css功能被關掉時 您可能會看到這些內容忽然出現又消失) 然後把寫入的內容抓出來放到變數裡 然後再把這個暫時的element拿掉 我粗略寫了一下... 在網頁的<body>內插入以下的code, <script type="text/javascript"> window.onload = function() { // 暫時放內容的element var holderDiv = document.getElementById('content-holder'); // 這個暫時的element裡除了寫入的內容, 還有開頭的script markup // 我們只要寫入的內容 放進一個top-level的變數cont中 window.cont = holderDiv.innerHTML.replace(/<script\s*.*><\/script>/i,''); // 然後把這個暫時的element拿掉 document.body.removeChild(holderDiv); } </script> <!-- 這一段markup不要有斷行 --> <div id="content-holder" style="display:none"><script type="text/javascript" src="test.js"></script></div> 就這樣 ... 試試看吧! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.24.125 ※ 編輯: elan 來自: 220.131.24.125 (08/10 01:25)

08/10 12:20, , 1F
哈 雖然是繞了一圈 但這是個不錯的方法 謝謝 elan :)
08/10 12:20, 1F

08/10 18:21, , 2F
其實 你也可以把test.js當成一般文件抓回來 不去執行它
08/10 18:21, 2F

08/10 18:23, , 3F
然後想辦法把每個document.write(...)中的字串抓出來
08/10 18:23, 3F

08/15 21:32, , 4F
還是直接複製test.js來改吧....XD
08/15 21:32, 4F
文章代碼(AID): #14sWfH9e (Web_Design)
文章代碼(AID): #14sWfH9e (Web_Design)