Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

decently-smart-target

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

decently-smart-target

A library for setting up that open in a new window logic.

latest
Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
8
14.29%
Maintainers
1
Weekly downloads
 
Created
Source

decently-smart-target

Decently Smart Target is a browser JavaScript library designed to intelligently manage the "open in new window" behavior for links. It distinguishes between internal and external links, ensuring that internal links open in the same window, while external links open in a new window.

You can call the library without any arguments to apply the behavior to all links currently on the page, or pass in a Node or NodeList for more targeted application.

By default, a link is considered "local" if it shares the same host as the current page. You can also provide a custom list of hosts to be considered local.

If you want to modify the function that sets a link to open in a new window, you can provide a callback as a third argument. The default behavior sets the target attribute to _blank.

Installation

For quick and easy, call it from a CDN.

<script src="https://unpkg.com/decently-smart-target/index.js"></script>

Or use it as a module.

npm install decently-smart-target@1.0.0
var decentlySmartTarget = require('decently-smart-target');

Usage

The first argument is expected to be a Node or NodeList.

The second optional argument is a list of hosts which are considered local. The third argument is the callback function which edits the target attribute.

Finally, the third optional argument overrides the setTargetBlank function which is called on applicable Nodes. This example shows the default functionality while demonstrating all available options. Setting rel to noopener noreferrer is a good idea, but this library does not enforce that opinion.

// custom hosts to consider local, these won't get setTargetBlank() called on them
var hosts = ['localhost:8080'];

// a custom function to set the target to blank
function setTargetBlank(el) {
  el.setAttribute('target', '_blank');
  // see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target
  el.setAttribute('rel', 'noopener noreferrer');
}

decentlySmartTarget(document.querySelectorAll('a'), hosts, setTargetBlank);

Keywords

target

FAQs

Package last updated on 10 May 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts