Jump to content

Как настроить политику разрешений у фрейма?


OlegTimkiv

Recommended Posts

Добрый день!

Подскажите пожалуйста, во фрейме отображаю сайт где осуществляться чтение из буфера.

Something went wrong DOMException: The Clipboard API has been blocked because of a permissions policy applied to the current document. See  - https://goo.gl/EuHzyv for more details. - Как можно настроить политику разрешений у фрейма? 

    

Link to comment
Share on other sites

On 10/27/2021 at 9:23 PM, Sherzod said:

Добрый вечер, 

А что Вы отображаете?

Добрый вечер! 

проект на asp mvc, копируем с буфера :

<div>
    <h3 class="clipboard-results"></h3>
    <button class="read-btn">Paste from clipboard</button>
</div>

<script>
	const readBtn = document.querySelector('.read-btn');

	const resultsEl = document.querySelector('.clipboard-results');
	const inputEl = document.querySelector('.to-copy');

	readBtn.addEventListener('click', () => {
	  navigator.clipboard.readText()
		.then(text => {
		  resultsEl.innerText = text;
		})
		.catch(err => {
		  console.log('Something went wrong', err);
		})
	});
</script>

Просто html:

<iframe  src="https://localhost:44321/Home/Index" ></iframe>

Ошибка:

Something went wrong DOMException: The Clipboard API has been blocked because of a permissions policy applied to the current document. See  - https://goo.gl/EuHzyv for more details   

Если добавить атрибут allow: 

<iframe  allow="clipboard-read; clipboard-write" src="https://localhost:44321/Home/Index" ></iframe>

То вставка работает корректно.  Можно в TUniURLFrame настроить атрибут allow? Или дело в чем-то другом.

Clipboardt.7z

Link to comment
Share on other sites

Добрый вечер,

Простите за поздний ответ.

Но, я так и не понял Ваш случай... Связано ли это вообще с UniGUI. Кажется Вы используете VCL приложение, не так ли?

Link to comment
Share on other sites

12 minutes ago, Sherzod said:

Добрый вечер,

Простите за поздний ответ.

Но, я так и не понял Ваш случай... Связано ли это вообще с UniGUI. Кажется Вы используете VCL приложение, не так ли?

Если в проекте UniGUI, в URLFrame подгрузить TestClipboard.html c приложенного архива, все работает корректно. Стоит открыть проект на asp с дебага, появляться ошибка. 

AttributeAllow.html без атрибута allow такая же ошибка, если использовать iframe. Вот думаю что проблема такая же у TUniURLFrame.      

     

Link to comment
Share on other sites

11 hours ago, OlegTimkiv said:

Если в проекте UniGUI, в URLFrame подгрузить TestClipboard.html c приложенного архива, все работает корректно. Стоит открыть проект на asp с дебага, появляться ошибка. 

Я не смог запустить полностью Ваш тестовый случай...

Мне кажется Вам нужно смотреть в сторону CORS

Link to comment
Share on other sites

3 hours ago, Sherzod said:

Я не смог запустить полностью Ваш тестовый случай...

Мне кажется Вам нужно смотреть в сторону CORS

Сначала думал что cors. UniURLFrame добавляю в html "<iframe  allow="clipboard-read; clipboard-write" src="https://localhost:44321/Home/Index" ></iframe>
"  -работает корректно. В проекте asp пробовал отключить cors, но все же ошибка сохраняться. Или что-то я не понимаю.   

Link to comment
Share on other sites

4 hours ago, Sherzod said:

Я не смог запустить полностью Ваш тестовый случай...

Мне кажется Вам нужно смотреть в сторону CORS

Подскажите пожалуйста, как можно в UniURLFrame добавить атрибут allow?  

Clipboard.jpg

Link to comment
Share on other sites

5 hours ago, Sherzod said:

Я не смог запустить полностью Ваш тестовый случай...

Мне кажется Вам нужно смотреть в сторону CORS

function afterCreate(sender)
{
   var me = sender;
   document.getElementById(me.id).setAttribute("allow", "clipboard-read; clipboard-write");
}

По идеи так должно было сработать. 

Link to comment
Share on other sites

17 minutes ago, OlegTimkiv said:

По идеи так должно было сработать. 

Возможно, что у Вас не будет доступа к контенту страницы с другого домена загруженной в iframe.

Link to comment
Share on other sites

2 hours ago, Sherzod said:

Вы должно добавить в список доверенных доменов (Ваш UniGUI web сервер)

https://ru.wikipedia.org/wiki/Cross-origin_resource_sharing

Добавлял, ошибка тая же. Почему тогда добавляю атрибуты все работает.  
 

Link to comment
Share on other sites

  • 2 weeks later...
On 10/31/2021 at 3:41 PM, Sherzod said:

Вы должны добавить в список доверенных доменов (Ваш UniGUI web сервер)

https://ru.wikipedia.org/wiki/Cross-origin_resource_sharing

Добрый день! Подскажите пожалуйста во фрейм никак не получиться добавить атрибуты allow="clipboard-read; clipboard-write"? Что только не пробовал, все без успешно. Если дело было в корс, то сервис был бы не доступен.    

Link to comment
Share on other sites

18 minutes ago, Sherzod said:

Попробуйте такой подход тогда:

procedure TMainForm.UniURLFrame1FrameLoaded(Sender: TObject);
begin
  //
  
  UniURLFrame1.JSInterface.JSCall('iframe.setAttribute', ['allow', 'clipboard write; clipboard read']);
end;

 

Огромное спасибо Вам! Заработало!  

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...