Drupal中是否有任何模块可以为所有外部站点设置target =“_ blank”
答案 0 :(得分:6)
这里有一个模块,我想在javascript中执行它:http://drupal.org/project/extlink。
我写了一个类似的模块,它与Drupal输入过滤器做同样的事情。它没有在任何地方发布,但我很乐意分享它,如果有任何理由为什么javascript不适合你。
答案 1 :(得分:2)
不确定是否有Drupal模块,但可以使用jquery轻松完成:
$("a[href^='http:']").attr('target', '_blank');
答案 2 :(得分:0)
Add some additional attributes for the menu link
Module name is: https://drupal.org/project/menu_attributes
答案 3 :(得分:0)
使用模板覆盖格式。例如field - field-external-link - article.tpl.php,用于文章类型和字段field-external-link。
请参阅$ link_rendered。
<div class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php if (!$label_hidden): ?>
<div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>: </div>
<?php endif; ?>
<div class="field-items"<?php print $content_attributes; ?>>
<?php foreach ($items as $delta => $item): ?>
<?php
// Add target="_blank"
$link_rendered = preg_replace('/^<a/i', '<a target="_blank"', render($item));
?>
<div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>><?php print $link_rendered; ?></div>
<?php endforeach; ?>
</div>
打破两个规则a)用正则表达式编辑xhtml和b)在模板而不是钩子中编辑。可以更改为模块和挂钩调用,但不会增加可重用性。