PHP帮助。我需要一个在新窗口中打开的链接

时间:2017-06-19 19:39:47

标签: php target

我有一个需要修改的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}" ?> 

当前所有链接在目标空白处打开。如何才能在目标空白处打开外部链接?

3 个答案:

答案 0 :(得分: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标签。

答案 1 :(得分:0)

您需要关闭双引号。看看你渲染的HTML&amp;你会看到问题。

答案 2 :(得分:0)

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

这样可以关闭您使用<a href="打开的双引号并将目标放入引号。这应该可以解决你的问题。