【问题标题】:PHP help. I need a link to be opened in new windowPHP 帮助。我需要在新窗口中打开一个链接
【发布时间】:2017-06-19 19:39:46
【问题描述】:

我有一个需要修改的 CMS。我希望在新窗口中打开外部链接target="_blank"

代码如下:

<?php foreach ($this->menus as $menu) { ?>
<a href="<?php echo $menu->type == 'External' ? $menu->link : "/Index/Content/Id/{$menu->id}" ?>">

我尝试过的:

<?php echo ($menu->type == 'External') ? "{$menu->link} target=_blank" : "/Index/Content/Id/{$menu->id}" ?> 

当前在目标空白中打开的所有链接。我怎样才能只在目标空白中打开外部链接?

【问题讨论】:

  • &lt;a href="some link" &lt;?= ($menu-&gt;type == 'external' ? 'target="_blank"' : '') ?&gt;&lt;/a&gt;

标签: php target


【解决方案1】:

不要在src 属性中进行操作,而是让您的代码更具可读性:

<?php if( $menu->type == 'External' ) { ?>
    <a href="<?php echo $menu->link; ?>" target="_blank">
<?php } else { ?>
    <a href="/Index/Content/Id/<?php echo $menu->id; ?>">
<?php } ?>

目前,这一行:

<?php echo ($menu->type == 'External') ? "{$menu->link} target=_blank" : "/Index/Content/Id/{$menu->id}" ?> 

将创建此格式的链接:

<a href="http://example.com target=_blank">

改成

<?php echo ($menu->type == 'External') ? "{$menu->link}\" target=\"_blank" : "/Index/Content/Id/{$menu->id}" ?> 

将修复它,您可以使用自己的方式来解决它,因为您使用双引号 (\") 关闭 href 属性,然后在回显结果时才添加 target 属性三元运算符 - 您需要考虑使用 " 包装的 php 标签,您在其中回显 url。

【讨论】:

  • 所有链接都打开目标空白。如何仅在目标空白中打开外部链接?
  • 如果所有链接都在新窗口中打开,那么我怀疑 $menu-&gt;type 设置不正确。 @Alon 提供的代码是正确的。
【解决方案2】:

您需要关闭双引号。看看你渲染的 HTML,你会发现问题。

【讨论】:

  • 展示他需要做什么,不要把它当作练习。
【解决方案3】:
<?php echo ($menu->type == 'External') ? 
     "{$menu->link} target='_blank'" : 
     "/Index/Content/Id/{$menu->id}"; 
 . '"' ?> 

这具有关闭用&lt;a href=" 打开的双引号并将目标放在引号中的效果。这应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 2013-02-12
    相关资源
    最近更新 更多