我正在开发一个新网站,其中包含一个mysql数据库,可以对不同类别和子类别中的一系列项目进行排序。我创建了一个很酷的脚本,可以在div中动态加载类别(页面内容)的内容而无需重新加载页面。加载内容时,它还会更改地址栏中的网址,如果您从此网址重新加载网页,则会看到正确类别的内容。问题是我希望在每个浏览器提供的右侧clik中保持“在新选项卡中打开”,并且我找不到一种方法来获取它,因为内容是从javascript / ajax函数加载的。
我以为
<a href="javascript: liveresults('mycategory');">
将取代
<a onclick="liveresults('mycategory');">
但是“在新标签页中打开”并未显示在Firefox中,并在chrome中显示“about:blank”页面。在Firefox中,如果我按住CTRL然后单击,它可以工作,但网址是“javascript:%20liveresults('mycategory');”我不知道接下来该做什么。
有人知道我该怎么办?也许我应该尝试创建自己的自定义右键菜单,如http://grooveshark.com/
答案 0 :(得分:-1)
试试这个:
function loadContent(event, param) {
if (!event.ctrlKey) {
console.log(param)
return false
} else
return true
}
<a
href='http://google.com'
onclick='return loadContent(event, "category")'
>Testo</a>
我认为,无需解释 另外,风格方面,我建议你这样做:
function loadContent(event) {
if (!event.ctrlKey) {
console.log(event.target.dataset.category)
return false
} else
return true
}
<a
href='http://google.com'
onclick='return loadContent(event)'
data-category='my_category'
>Testo</a>
它可能不适用于旧的IE(有srcElement而不是目标),但在我看来看起来更酷。但是真的没关系。
或者,实际上(可能是太多了=)你可以摆脱双重指定地址:
function loadContent(event) {
if (!event.ctrlKey) {
var part_of_url = event.target.href.split('/')[3]
// maybe some other extraction method, now 'mail'
console.log(part_of_url)
return false
} else
return true
}
<a
href='http://google.com/mail/'
onclick='return loadContent(event)'
>Testo</a>