【问题标题】:Java script add element without reloadJavascript添加元素而不重新加载
【发布时间】:2011-12-22 01:03:21
【问题描述】:

我有这个 div,我在其中使用 javascript 添加了更多 div。

但是,每次我使用 javascript 添加一个新 div 到 div 时,它都会刷新,因此例如其中一个 div 中的 youtube 视频将停止播放。

我可以将这些div放入div而不重新加载吗?

我当前的放入代码是

m += "new thing <a> and other stuff </a>"

我需要它来放置我想要的新东西而无需重新加载。 我目前使用 href="javascript: addMessage('current time', 'user', 'message')"

addMessage 代码:

function addMessage(time, user, msg) {
if (msg == "") {
    return false;
}
var m = document.getElementById('message-panel');
m.innerHTML += "<div class='sentMessage'><span class='time'>" + time + "</span><span class='name'><a>" + user + "</a></span><span class='message'>" + msg + "</span></div>";
pageScroll();
if (user != "SERVER") {
    if (user != "ERROR") {
        playAudio('new-message-sound');
    }
}
return false;

}

如果使用 href="javascript:addMessage()",我将新消息放入的唯一解决方案。我不能做 ONCLICK="" 因为我正在使用 java 来控制 javascript!

我用于输入消息的 javacode:

public void addMessage(String user, String msg) {
    try {
        getAppletContext().showDocument(new URL("javascript:addMessage(\"" + Time.now("HH:mm") + "\", \"" + user + "\", \"" + msg + "\")"));
    }
    catch (MalformedURLException me) {}
}

提前致谢,恩吉

【问题讨论】:

    标签: java javascript message reload


    【解决方案1】:

    使用document.createElement('tag name here'); 创建元素,然后使用m.appendChild(newelement); 将其插入。这会使之前的任何元素不受影响。

    【讨论】:

    • 所以var n = document.createElement("&lt;div class='sentMessage'&gt;&lt;span class='time'&gt;" + time + "&lt;/span&gt;&lt;span class='name'&gt;&lt;a&gt;" + user + "&lt;/a&gt;&lt;/span&gt;&lt;span class='message'&gt;" + msg + "&lt;/span&gt;&lt;/div&gt;"); m.appendChild(n) ??
    • 不,你可以var n = document.createElement('div'); n.className = 'sentMessage'; n.innerHTML = "&lt;span class='time'&gt;.........&lt;/span&gt;"; m.appendChild(n);
    猜你喜欢
    • 2013-09-10
    • 2017-11-16
    • 1970-01-01
    • 2017-02-04
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 2012-03-06
    相关资源
    最近更新 更多