Javascript 在谷歌或Facebook上插入脚本显示;重新加载页面以获取“的源”;

Javascript 在谷歌或Facebook上插入脚本显示;重新加载页面以获取“的源”;,javascript,facebook,bookmarklet,Javascript,Facebook,Bookmarklet,我正在创建一个bookmarklet,这是bookmarklet脚本,当在bookmarks工具栏中单击它时,会调用一个加载更多内容的javascript文件…在Google和Facebook上,BookmarkletAc.js文件不会加载,并显示一条消息“重新加载页面以获取源代码:…”。在其他网站上,这个文件被称为bookmarklet,工作正常,我看不出问题出在哪里。文件被阻止加载,我读到没有必要将域名列入Facebook或google的白名单,或者我错了吗?有什么问题吗 <a onc

我正在创建一个bookmarklet,这是bookmarklet脚本,当在bookmarks工具栏中单击它时,会调用一个加载更多内容的javascript文件…在Google和Facebook上,BookmarkletAc.js文件不会加载,并显示一条消息“重新加载页面以获取源代码:…”。在其他网站上,这个文件被称为bookmarklet,工作正常,我看不出问题出在哪里。文件被阻止加载,我读到没有必要将域名列入Facebook或google的白名单,或者我错了吗?有什么问题吗

<a onclick="alert('Drag button to toolbar');return false;" href="javascript:(function(){var head=document.getElementsByTagName('head')[0],script=document.createElement('script');script.type='text/javascript';script.src='//www.example.com/bookmarklet/BookmarkletAc.js?sId='+Math.floor(Math.random()*99999);head.appendChild(script);})();" class="bookmarklet-button">Add bookmarklet</a>

Facebook有一个内容安全策略,防止任何bookmarklet工作。可以通过HTTP头为任何页面设置CSP

根据我的个人测试,谷歌的常规搜索页面不会阻止bookmarklet,但也许你正在其他一些谷歌网站或页面上进行测试


我刚才在这里回答了一个相关问题:

谢谢你的回答。问题似乎是我的资源来自http,而不是https,所以混合协议会导致安全问题如果这是真的,那么你的问题是误导性的。您的示例代码包含
//www.example.com/…
,这表示将使用相对协议加载外部脚本,这表示您知道混合协议问题。平心而论,你应该接受我的回答,因为这是给出实际问题的最佳答案。