Обработка события извлечения URI данных в расширении Chrome - PullRequest
0 голосов
/ 09 марта 2019

В Javascript вы можете создать якорь с URI данных в виде HREF и программно щелкнуть ссылку, чтобы «загрузить» данные. Это прекрасно работает в Chrome. Расширение Chrome может перехватывать извлечение контента из Интернета, подключая webRequest.onBeforeRequest с фильтром 'all_urls'. Это нормально работает для обычных HTTP-запросов, но не работает для меня с щелчком URI программных данных. У меня такой вопрос: это ошибка / будущая функция ( эта может быть) или есть какой-то другой интерфейс для перехвата доступа к данным URI?

Вот мой тестовый код Javascript:

<html>
<head>
<script lang="javascript">
function download(filename, text)
{
	var element = document.createElement('a');
	element.setAttribute(
	  'href',
	  'data:text/plain;charset=utf-8,' + encodeURIComponent(text)
	);
	element.setAttribute('download', filename );
	element.style.display = "none";
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function go()
{
	download("hello.txt","Hi there");
}
</script>
</head>
<body onload="go();">
	Testing
</body>
</html>

Вот мой код расширения Chrome:

function checker(details)
{
	var bkg = chrome.extension.getBackgroundPage();
	bkg.console.log( JSON.stringify(details));
}

chrome.webRequest.onBeforeRequest.addListener( 
  checker, 
  {urls: ["<all_urls>"]}, 
  ["blocking"] 
);
...