Re: [请益] javascript 如何跨源存取 iframe 内容

楼主: wsad50232 (阿丰)   2023-03-13 20:10:31
※ 引述《alan23273850 (God of Computer Science)》之铭言:
: 脚本通常是用 javascript 写,如果是下列写法,
: iframe = document.getElementById("tool_content");
: iframe.contentDocument 会因为 CORS 机制而存取不到,
: 想问板上各路大神是否有一个针对此问题的超强力解法?... (Q1)
: 此外,下载影片的方式我也想询问,如果是右下角出现
: Download
: Playback speed
: Picture in picture
: 这三者选单的画面的话,有没有也可以直接用 javascript 或其他等价方法的
: 下载方式呢?... (Q2)
: 上述两个解答有效的话,都有丰厚批币,但第一个问题较为重要,谢谢囉~
(Q1) 由于同源政策限制了网页中不同源之间的互动,如果 iframe 的来源不同于主页面
,那么使用 iframe.contentDocument 取得的内容将会被标记为跨源。在这种情况下,你
可以考虑使用 CORS 或 JSONP 等技术来绕过同源政策,但是这需要你有权限控制被嵌入
页面的服务器端。另外,如果你无法控制服务器端,那么你可以尝试使用跨域资源共享(
CORS)或代理服务来取得 iframe 中的内容。
(Q2) 取得下载连结的方法取决于网站的具体实现方式。如果下载连结是由 JavaScript
动态生成的,你可以尝试通过检查网页的源代码或使用浏览器开发者工具来查找下载连结
所在的元素或 JavaScript 函数。一旦找到下载连结,你可以使用 JavaScript 下载 API
,如 fetch 或 XMLHttpRequest,或者使用 download 属性和 Blob 对象来下载影片。但
需要注意的是,这种方法可能违反网站的使用条款,并可能导致你的帐户被封锁或其他法
律后果。建议你先查看网站的使用条款,确保你的操作不会违反任何规定。
作者: qwe70302 (为何一到90分就会输)   2023-03-13 20:20:00
有股AI味

Links booklink

Contact Us: admin [ a t ] ucptt.com