it-swarm-vi.com

Làm cách nào để tạo một URL bên ngoài mở trên một tab mới?

Khi tôi cố gắng đặt một liên kết như <a href="http://www.example.com/" target="_blank"> trên đường dẫn liên kết, tôi nhận được thông báo lỗi sau:

Đường dẫn '//www.example.com/ "target =" _ blank ">' không hợp lệ hoặc bạn không có quyền truy cập vào nó.

Có cách nào để mở URL bên ngoài trong một tab mới không?

5
jone

Nếu bạn có thể nhắm mục tiêu thẻ menu của mình bằng jquery bằng ID của nó, bạn có thể đặt một cái gì đó như thế này vào một tệp JS mà bạn sẽ thêm vào chủ đề của mình thông qua your_theme.info

Drupal.behaviors.externalMenu = function(context, settings) {
    $('#menu_id').attr('target', '_blank');
};

Hoặc bạn có thể sử dụng mô đun Thuộc tính men .

12
tostinni

Không phải mỗi mục menu. Tuy nhiên, dự án Liên kết ngoài cho phép mở tất cả các liên kết bên ngoài trong một cửa sổ mới và cho biết chúng như vậy với một biểu tượng.

3
Berdir

Vấn đề là bạn đang nhập <a href="http://www.example.com/" target="_blank">, khi Drupal chỉ mong đợi liên kết (http://www.example.com, trong trường hợp của bạn).

Nếu bạn nhập http://www.example.com, Drupal sẽ nhận thấy đó là một liên kết bên ngoài và nó sẽ cho phép bạn sử dụng nó.
[.__.] Tôi đã thử thêm một liên kết đến drupal.org và như bạn có thể thấy, Drupal đã chấp nhận nó (đó là liên kết được hiển thị là "Drupal").

screenshot

Đối với cách mở liên kết trong tab trình duyệt mới, các câu trả lời khác đã giải thích cách thực hiện điều đó.

1
kiamlaluno

Tôi vừa nhận được câu trả lời này từ hội đồng quản trị là một sự trợ giúp lớn, điều này cũng có thể phù hợp với bạn:

(function($){
  $(document).ready(function(){
    $('.page-node-166 a').attr('target', '_blank');
  });
})(jQuery);

trong trường hợp của tôi, tôi đã tham chiếu lớp trang, sau đó là 'a' và điều đó làm cho các liên kết trên trang đó mở trong cửa sổ mới. Tôi sẽ thực hiện thêm một chút chọn lọc để tôi có thể xác định chính xác hơn menu cụ thể trong thanh bên.

0
user1176783

Nếu bạn cần làm cho tất cả các liên kết bên ngoài mở trong một cửa sổ mới, bạn có thể viết lại các liên kết chủ đề trong chủ đề hiện tại của mình, nếu không sử dụng mô-đun thuộc tính menu như đã nêu ở trên.

function yourtheme_name_link($variables) {
  // Add target blank to all external links.
  if (url_is_external($variables['path'])) {
    $variables['options']['attributes']['target'] = '_blank';
  }
  return '<a href="' . check_plain(url($variables['path'], $variables['options'])) . '"' . drupal_attributes($variables['options']['attributes']) . '>' . ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text'])) . '</a>';
}
0
Bogdan Tur

Có một dự án gọi là " Menu Target " cho phép bạn làm điều đó. Có lẽ điều đó giúp những người chỉ cần liên kết menu riêng lẻ để mở trong một trình duyệt mới.

0
hobbes_VT