我用js做顯示模板,再用append做流水分頁,
但是網頁會被清空,只剩模版顯示的資料,請問這有解嗎 @@a
<div class="moredata"></div>
<div class="more" onclick="More('inbox', 2);">MORE</div>
<script>
function inbox(msg)
{ document.write('<div class="showbox"><span class="ibox1">'+msg[0]+'<span class="ibox2">'+msg[1]+'</span></span></div>'); }
function More(url, page)
{
	$.ajax({
		url: url,
		type: "POST",
		data: "P="+page,
		success: function(msg)
		{ $(".moredata").append(msg); },
		error: function(){}
	});
}
</script>
後端回饋的資料
<script>inbox(["DATA1","DATE2"]);</script>
                        function inbox(msg) {
    retrun '<div class="showbox"><span class="ibox1">'+msg[0]+'<span class="ibox2">'+msg[1]+'</span></span></div>';
}
                        怎麼覺得最近是否有人把javascript想的太方便了。
append只是幫你將html的文字給顯示出來。這就像是你把程式碼寫到記事本上的意思一樣。
它會不會跑程式碼??對記事本而言,它只是一段程式文字。不是程式。
所以,用append,就如同我上面說的記事本效應一樣。它可以幫你將那段script加入到你的html沒錯。但對你的html而言,它只是一個文字,一個元素。並無法將它當一個script的程式。
只會將它當一個script的自定元件寫入而已。
ps:我光這個月就碰上3個人問這樣的問題了。(不是在這邊)
也不知道是不是都是你。還是真的有三個人。
以前我是有用原生 javascript 插入 script
( 搜尋 dynamic insert js )
至於 jQuery 剛剛測試這樣是可以跑的
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>測試</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
    <input type="button" value="插入script到body" onclick='f1()'>
    <script type="text/javascript">
        function f1()
        {
            $('body').append('<scr'+'ipt>alert("123");</scr'+'ipt>');
        }
    </script>
</body>
</html>
PS. 上面把 script 拆開寫是發現瀏覽器會把字串內的 </script> 當作程式碼結尾 (如果是引用 js 檔的話就不用這樣搞)
不過除非特殊狀況,平常是不需要動態插入 javascript 的
以原發問的內容應該改成讓伺服器回傳 JSON
然後依據 JSON 回傳的內容帶入參數到 inbox 即可:
後端回饋的資料
{'param1':'DATA1','param2':'DATE2'}
然後前端
$.ajax({
    url: url,
    type: "POST",
    dataType:'json',
    data: "P="+page,
    success: function(msg){
        inbox(msg['param1'], msg['param2']);
    },
    error: function(){}
});