Web浏览器中的疯狂JavaScript输出

时间:2018-02-09 17:18:32

标签: javascript microsoft-edge

我正在使用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会翻转dategetTodaysChapter

奇怪的是,如果删除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>

1 个答案:

答案 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>';