iOS(iPhone)에서 웹페이지의 제목과 URL을 원탭으로 복사하기 Bookmarklet
10919 단어 iOS자바스크립트bookmarklet아이폰
해결하고 싶은 일
※2021-03-27: 실장 수정했습니다.
※2022-02-21: 기사 갱신했습니다(원래의 기사의 코드와 공통화할 수 있었으므로 이쪽의 기사의 코드는 불필요하게 되었습니다)
바로 완성된 것(데모)
다음 장에서는 어떻게 실현했는지의 흐름을 설명합니다.
내가하고 싶은 것은 Bookmerklet에서 할 수 있습니다.
Bookmerklet이란?
북마크렛(Bookmarklet)은 사용자가 웹브라우저의 북마크 등에서 기동하여 웹브라우저에서 간단한 처리를 하는 간이적인 프로그램이다 [주석 1]. 휴대전화의 웹브라우저로 부족한 기능을 보충하거나, 웹 어플리케이션의 처리를 기동하기 위해서 사용되는 경우가 많다.
북마크렛 - Wikipedia
웹페이지를 즐겨찾기에 등록하고 거기에서 웹페이지로 날아가요? 그 URL 부분, 보통은
https://xxxx.yyy.zzz
그렇다고 생각하지만,
javascript:alert("This is a bookmerklet!");
적인 느낌으로 js의 코드로 다시 쓰는 것으로, 그 즐겨찾기 버튼에 특정의 처리를 넣을 수가 있습니다. 그래서 원하는 시간에 즐겨 찾기를 클릭하면 넣어 놓은 js를 실행할 수 있습니다.
시도해 보았습니다.
그래서 주제이지만 과거에
되는 기사를 투고하고 있어서, 이 Bookmerklet를 그대로 사용할 수 있지 않을까 기대하고, 동작시켜 보았지만 잘 기능하지 않고···.
2022-02-21: ↑ 기사의 코드 그대로도 iOS에서 작동하게 되었습니다. 그대로 사용하십시오. (이 기사의 다음 내용은 비망록적으로 감히 남겨 둡니다만, 사용할 필요는 없습니다)
원인
오. .
해결책
분명히 복사 대상을 선택 상태로 설정해야합니다.
완성된 Bookmerklet
에서 작동 확인되었습니다.
(() => {
/**
* メイン処理
*/
const main = () => {
// textarea作成
const textAreaElement = document.createElement("textarea");
textAreaElement.textContent = getUrlInfo();
// bodyに追加
const bodyElement = document.getElementsByTagName("body")[0];
bodyElement.appendChild(textAreaElement);
textAreaElement.select();
// 選択状態にする
textAreaElement.contentEditable = 'true'; // iOS will only select text on non-form elements if contentEditable = true;
textAreaElement.readOnly = false; // iOS will not select in a read only form element
textAreaElement.setSelectionRange(0, 999999); // iOS only selects "form" elements with SelectionRange
// ClipboardへCopy実行
const isSuccessCopy = document.execCommand('copy');
// textarea削除
bodyElement.removeChild(textAreaElement);
// Copyが成功したか出力
console.log("Copy successful? = " + isSuccessCopy)
};
/**
* URLとタイトル取得
* @returns {string}
*/
const getUrlInfo = () => {
// コピー後のフォーマットに加工した文字列を返す
return document.title + '\n' + document.URL;
};
main();
})()
압축판
javascript:(()=>{const e=()=>{const e=document.createElement("textarea");e.textContent=t();const n=document.getElementsByTagName("body")[0];n.appendChild(e),e.select(),e.contentEditable="true",e.readOnly=!1,e.setSelectionRange(0,999999);const o=document.execCommand("copy");n.removeChild(e),console.log("Copy successful? = "+o)},t=()=>document.title+"\n"+document.URL;e()})();
어떻게 사용합니까?
iPhone에서 Bookmerklet을 사용하려면 다음 단계가 필요합니다.
나중에 좋아하는 웹페이지에서 URL 바를 탭하고 ↑로 만든 'Copy'를 탭합니다.
이것만으로,
Webページのタイトル
https://sample.com
같은 형식의 문자열이 복사되어 있어야합니다. 어딘가에 붙여보세요. 편해졌어!
Reference
이 문제에 관하여(iOS(iPhone)에서 웹페이지의 제목과 URL을 원탭으로 복사하기 Bookmarklet), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xshoji/items/619a5c3cceb310a2b35a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)