В основном, когда я запускаю этот скрипт в консоли Chrome, я хочу получить текущий url, открыть новую вкладку и установить ее как значение текстового поля.
javascript:(function(){
var url=location.href;
var newtab=window.open('http://www.theyoump3.com/');
newtab.document.getElementsByName('url')[0].value=url;
})();
Когда я запускаю команду, я получаю исключение в консоли:
Uncaught DOMException: заблокирован кадр с источником " https://www.youtube.com " от доступа к кадру скрещивания.
Его понимали, проблема CORS. Есть ли обходной путь? Передача параметра url не поддерживается этим сайтом.
Такая же проблема возникает при попытке этого через iframe
var f=document.createElement('iframe');
f.src='https://www.youtube.com/watch?v=4J2zo7ArHnw';
f.style="position:absolute;width:400px;height:400px;z-index:99999;border:2px solid black";
document.body.appendChild(f);
конечно, он будет работать, тогда src указывает на то же происхождение
Если ваша отправная точка не совпадает с тем, как http://www.theyoump3.com/
, вы не сможете этого сделать, потому что код JavaScript, который вы запускаете в консоли, запускается в контексте и происхождении страницы консоль прилагается.
Если вы делаете это со страницы на этом происхождении, вам просто нужно дождаться события load
:
javascript:(function(){
var url=location.href;
var newtab=window.open('http://www.theyoump3.com/');
newtab.addEventListener("load", function() {
newtab.document.getElementsByName('url')[0].value=url;
});
})();
Но опять же: Только если вы начинаете это происхождение, и я предполагаю, что вы этого не сделали.
Использовать Window.postMessage
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
Я уверен, что это будет полезно