我正在使用JavaScript从Web API创建一些HTML锚点。
scheduleitems += '<li class="link"><a href="javascript:makeRequest(getUrl("' + date + '"), getTodaysChapter);"><span class="date"><time datetime="' + date + '">' + datereadable + '</time></span> <span class="reference bookchapter">' + book + ' ' + chapter + '</span></a></li>';
这一切似乎都非常简单。 这是一个锚点列表。
该代码应该看起来与此类似......
<a href="javascript:makeRequest(getUrl("2018-02-05"), getTodaysChapter);">
但是,它看起来很奇怪(在不同的网络浏览器中也有所不同)。
Microsoft Edge:
<a href="javascript:makeRequest(getUrl(" gettodayschapter);"="" 2018-02-05"),=""><span class="date"><time datetime="2018-02-05">Mon Feb 05 2018</time></span> <span class="reference bookchapter">Amos 1</span></a>
Mozilla Firefox:
<a href="javascript:makeRequest(getUrl(" 2018-02-05"),="" gettodayschapter);"=""><span class="date"><time datetime="2018-02-05">Mon Feb 05 2018</time></span> <span class="reference bookchapter">Amos 1</span></a>
谷歌浏览器:
<a href="javascript:makeRequest(getUrl(" 2018-02-05"),="" gettodayschapter);"=""><span class="date"><time datetime="2018-02-05">Mon Feb 05 2018</time></span> <span class="reference bookchapter">Amos 1</span></a>
有人可以解释为什么所有浏览器都在getUrl()
中插入空格并添加额外的=""
s?为什么Edge会翻转date
和getTodaysChapter
?
奇怪的是,如果删除date
周围的引号,则所有三个浏览器都会正确输出。
但是,我认为我需要将该参数作为字符串传递(也许连字符会自动使其成为字符串)。
<a href="javascript:makeRequest(getUrl(2018-02-05), getTodaysChapter);"><span class="date"><time datetime="2018-02-05">Mon Feb 05 2018</time></span> <span class="reference bookchapter">Amos 1</span></a>
答案 0 :(得分:0)
scheduleitems += '<li class=\"link\"><a href=\"javascript:makeRequest(getUrl(' + date.toString() + '), getTodaysChapter);\"><span class=\"date\"><time datetime=\"' + date.toString() + '\">' + datereadable + '<\/time><\/span> <span class=\"reference bookchapter\">' + book + ' ' + chapter + '<\/span><\/a><\/li>';