“ target =” _ blank“”未达到我的预期结果

时间:2019-07-22 22:27:39

标签: html

尝试使用target =“ _ blank”属性,但它在我的本地目录中返回一个位置。

标签:

<a class="badge badge-primary p-2" role="button" href="<?php echo $row['linkContent']; ?>" target="_blank" rel="noopener noreferrer">Link</a>

返回此错误:

  

“未找到对象!在此服务器上未找到所请求的URL。引荐页上的链接似乎有误或已过时......”

在修改它之后,当我在href标记中附加“ https://”时,它可以很好地工作,但是我不想这样做,因为有些人可能会粘贴带有现有标记的链接。

例如,这可行:如果$ row ['linkContent'] = stackoverflow.com ||输出:https://stackoverflow.com

<a class="badge badge-primary p-2" role="button" href="https://<?php echo $row['linkContent']; ?>" target="_blank" rel="noopener noreferrer">Link</a>

不起作用:如果$ row ['linkContent'] = https://stackoverflow.com ||输出:https://https//stackoverflow.com

<a class="badge badge-primary p-2" role="button" href="https://<?php echo $row['linkContent']; ?>" target="_blank" rel="noopener noreferrer">Link</a>

更奇怪的是,一天前,此确切的代码有效(没有将href =“ https://附加到href标签上),现在却无效了。为什么会这样,无论linkContent变量中是否包含“ stackoverflow.com”或“ https://stackoverflow.com”,我该如何使其正常工作。

1 个答案:

答案 0 :(得分:-1)

也许您可以在href=部分之后实现一些php逻辑,如下所示:

<?php if (strpos($row['linkContent'],'https://') === false) { echo 'https://' . $row['linkContent']; } else { echo $row['linkContent']; } ?>

这将检查链接中是否包含https://部分,否则将在链接中添加前缀。

如果您喜欢上述if语句的输出,则可以进一步改进它以做更多事情并解决您的问题。

祝你好运