'target' => '_blank' 不起作用。在另一个选项卡中渲染单击

问题描述 投票:0回答:2

我有以下代码在 GridView::widget 中呈现数据库(Blob)中的图片。单击图片时,将呈现另一个控制器方法,但在同一选项卡中。我想在另一个选项卡中呈现此方法。

'target' => '_blank'

不适用于此代码。我怎样才能实现这个目标?

    [
    'attribute' => 'photo',
    'label' => 'Photo',
    'format' => 'raw', // hier nicht html,da das Bild sonst nicht angezeigt wird
    'vAlign' => 'middle',
    'value' => function($model) {
        $url = 'data:image/jpeg;base64,' . base64_encode($model->photo);
        return Html::a(
                        Html::img($url, ['alt' => 'Kein Photo gefunden', 'class' => 'img-circle', 'style' => 'width:50px;height:50px']), [Url::to('ds-substanz/vergroessern'), 'id' => $model->id], ['title' => 'Photo vergrößern', 'target' => '_blank']
        );
    }
],
yii2
2个回答
1
投票

检查您的gridview是否未包含在Pjax中。在这种情况下,您应该使用 Pjax 中的 linkSelector 来获取其他所需的链接。
否则,最好使用 JavaScript 和 jQuery 或...... 浏览器可能会忽略它。他们有针对此类问题的设置,当然你的语法是正确的。
您可以执行以下操作

Html::a('IMG.....', ['ds-substanz/vergroessern', 'id' => $model->id], ['onclick'=>"window.open(this.href,'_blank');return false;",'target' => '_blank']);

祝你好运。


0
投票

首先,检查一下你是否在gridView中使用了pjax:

'pjax' => true
。 在这种情况下,将
'data-pjax' => "0"
添加到 Html::a() 的选项中。

'value' => function ($model) {
    $url = 'data:image/jpeg;base64,' . base64_encode($model->photo);
    return Html::a(
        Html::img($url, ['alt' => 'Kein Photo gefunden', 'class' => 'img-circle', 'style' => 'width:50px;height:50px']),
        [Url::to('ds-substanz/vergroessern'), 'id' => $model->id],
        ['data-pjax' => "0", 'title' => 'Photo vergrößern', 'target' => '_blank']
    );
}
© www.soinside.com 2019 - 2024. All rights reserved.