docs.rodeo

MDN Web Docs mirror

RestrictionTarget: fromElement() static method

{{APIRef("Screen Capture API")}} {{SeeCompatTable}} {{securecontext_header}} 

The fromElement() static method of the {{domxref("RestrictionTarget")}}  interface returns a {{domxref("RestrictionTarget")}}  instance that can be used to restrict a captured video track to a specified DOM element (plus its descendants).

Syntax

RestrictionTarget.fromElement(element)

Parameters

[!NOTE] When the element is captured, any alpha-channel value set on it is not included. If the restriction target element is semi-transparent, it will end up completely opaque in the capture and therefore end up looking different.

Return value

A {{jsxref("Promise")}}  that resolves to a {{domxref("RestrictionTarget")}}  object instance, which can then be passed to {{domxref("BrowserCaptureMediaStreamTrack.restrictTo()")}}  to restrict the video captured in the track to just the particular DOM element the RestrictionTarget was created with.

RestrictionTarget objects are serializable. They can be passed to another document using mechanisms such as {{domxref("Window.postMessage()")}} .

The promise will reject if the restriction target element is not eligible for restriction.

Examples

// Options for getDisplayMedia()
const displayMediaOptions = {
  preferCurrentTab: true,
};

// Create restriction target from DOM element
const demoElem = document.querySelector("#demo");
const restrictionTarget = await RestrictionTarget.fromElement(demoElem);

// Capture video stream from user's webcam and isolate video track
const stream =
  await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
const [track] = stream.getVideoTracks();

// Restrict video track
await track.restrictTo(restrictionTarget);

// Broadcast restricted stream in <video> element
videoElem.srcObject = stream;

See Using the Element Capture and Region Capture APIs for in-context example code.

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN