我有一个需要修改的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}" ?>
当前所有链接在目标空白处打开。如何才能在目标空白处打开外部链接?
答案 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="
打开的双引号并将目标放入引号。这应该可以解决你的问题。