Chrome 및 Firefox에서 클립 보드 JavaScript 기능의 비밀 복사?


150

최신 정보

브라우저가 JS에서 기본적으로 복사를 지원하기 시작한 것 같습니다.


Mac에서 Chrome과 Firefox의 콘솔 창에서 실행할 수 있습니다.

copy("party in your clipboard!");

텍스트가 클립 보드에 복사됩니다. 나는 SO와 Google을 검색했는데 이것에 대해 아무것도 찾지 못하는 것 같습니다.

  • 이들은 각 브라우저에만 해당됩니까?
  • 이러한 JavaScript 함수에 대한 자세한 정보는 어디서 찾을 수 있습니까?

브라우저 버전 :

대체 텍스트 대체 텍스트

'복사'를 실행할 때 Chrome 콘솔에서 자바 스크립트가 반환 됨

function (object)
    {
        if (injectedScript._type(object) === "node") {
            var nodeId = InjectedScriptHost.pushNodePathToFrontend(object, false, false);
            InjectedScriptHost.copyNode(nodeId);
        } else
            InjectedScriptHost.copyText(object);
    }
  • 이 코드는 무엇을 의미합니까?

다음은 모든 크롬 확장 프로그램을 사용 중지 한 상태에서 Chrome 콘솔에서 복사 기능을 실행하는 스크린 샷입니다

대체 텍스트

대체 텍스트


어떤 Firefox 콘솔을 사용하고 있습니까, 오류 콘솔?
Matthew Flaschen

2
저는 C ++ 프로그래머는 아니지만 opensource.apple.com/source/WebCore/WebCore-7533.18.1/inspector/void InjectedScriptHost::copyText(const String& text) 에서 찾을 수 있습니다 .
Kai

@Kai, Hmmmmmm ... 그렇다면 애플의 오픈 소스 웹킷에 내장 된 것 같습니까?
Mike Grace

불행히도이 명령은 Chrome 확장 프로그램에서 작동하지 않으므로 WebKit의 개발자 도구 콘솔에만 적용되어야합니다.
atomicules

Safari에서도 작동하는지 확인하십시오. 좋은 발견!
bizi

답변:


62

나는 이것이 사전 정의 된 Firebug 콘솔 기능이라고 생각합니다. 적어도 Firebug의 경우 인 것 같습니다. window.copy예를 들어 호출 을 시도 하면 정의되지 않은 함수에 대한 경고가 표시되므로 브라우저 함수가 아니며 일반 JavaScript 파일에서 사용할 수 없습니다. 다음 기능도 JavaScript 콘솔에서 약간 작동 한 후에 작동하는 것 같습니다.

  • clear()
  • profile()

Chrome 콘솔에서이를 실행하면 웹킷 콘솔에서 이러한 기능의 소스가 나타납니다.

> profile
function ()
{
return console.profile.apply(console, arguments)
}

> clear
function ()
{
InjectedScriptHost.clearConsoleMessages();
}

> copy
function (object)
{
if (injectedScript._type(object) === "node")
object = object.outerHTML;
InjectedScriptHost.copyText(object);
}

그동안 방화범 소스는 또한 기능의 목록을 정의합니다 :

this.clear = function()  // no web page interaction
{
    Firebug.Console.clear(context);
};

this.inspect = function(obj, panelName)  // no web page interaction
{
    Firebug.chrome.select(obj, panelName);
};

this.keys = function(o)
{
    return FBL.keys(o);  // the object is from the page, unwrapped
};

this.values = function(o)
{
    return FBL.values(o); // the object is from the page, unwrapped
};

// etc...

2
노드 검사기 디버깅 콘솔을 사용할 때 Chrome 44에서 작동하지 않는 것 같습니다. Clipboard is not enabled in hosted mode. Please inspect using chrome://inspect
jcollum

1
좋은. Chrome 버전 61.0.3163.100 (공식 빌드) (64 비트)에서 작동합니다!
Shanimal

1
내 Chrome 개발자 도구는 작동하는 것처럼 보이고 작동합니다 window.copy('content')(Firefox에서만 copy('content')작동)
morhook

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.