我得到了一个带有结果的动态页面,问题是那里出现的链接不会在新标签上打开,这是代码,但我无法对其进行排序。
我希望单击页面(链接)以在新标签上打开它,而不是直接转到网站。
顺便说一句:英语不是我的母语,我希望我能用正确的语言来形容。
var updateResultsHtml = function()
{
for ( var i = 0, exists = 0, elements = []; i < results.length; i++ ) {
exists += (statuses.success.indexOf(results[i].status) >= 0 ? 1 : 0);
elements.push(appendChildren(createElement('div', ['class', 'col3']), [
createElement('a', ['href', results[i].url, 'data-value', results[i].message], results[i].url.replace(/(https?\:\/\/)?(www\.)?/i, ''))
]));
}
resultsUsername.innerText = username;
resultsUsername2.innerText = username;
resultsPercentage.innerText = Math.round((exists / total) * 100) + '%';
removeChildren(resultsParent);
appendChildren(resultsParent, elements);
togglePanel(resultsPanel);
};
var getExistence = function() {
httpRequest('POST', 'existence.php', ['content-type', 'application/x-www-form-urlencoded'], 'index=' + index + '&username=' + username, function(data) {
if ( index < total ) {
++index;
results.push(JSON.parse(data));
updateProccessingHtml();
getExistence();
}
else {
updateResultsHtml();
}
});
};
我的另一个问题与提交按钮有关,必须单击该按钮,在这种情况下代码将无法识别Enter按钮,这将是什么变化以使其能够识别Enter并使其在Enter时也可提交按下。
submitButton.onclick = function() {
index = 0;
results = [];
username = usernameInput.value;
if ( username.length > 0 ) {
window.location.href = '//' + window.location.host + window.location.pathname + '#' + username;
usernameInput.disabled = true;
submitButton.disabled = true;
getExistence();
}
答案 0 :(得分:1)
您可以使用属性文本target
属性强制超链接在新选项卡中打开。
目标指定在何处显示链接的URL。它是浏览上下文的名称或关键字:标签,窗口或iframe。
<a target="_blank|_self|_parent|_top|framename">
以下关键字具有特殊含义:
_self :将URL加载到与当前浏览上下文相同的浏览上下文中。这是默认行为。
_blank :将URL加载到新的浏览上下文中。通常这是一个标签,但用户可以将浏览器配置为使用新窗口。
_parent :将URL加载到当前URL的父浏览上下文中。如果没有父母,则其行为与_self相同。
_top :将URL加载到顶级浏览上下文中(即,“最高”浏览上下文是当前浏览上下文的祖先,并且没有父级)。如果没有父母,则其行为与_self相同。
您只需将target
属性添加到createElement
函数参数中,如下所示:
createElement('a', ['href', results[i].url, 'target', '_blank', 'data-value', results[i].message], results[i].url.replace(/(https?\:\/\/)?(www\.)?/i, ''))