如何将元素追加到HTML Object Tag?

时间:2016-01-06 20:58:49

标签: javascript jquery html

所以,我遇到了一个问题,我想在HTML对象标记中禁用对我网站上加载的网站的右键点击,如How to add eventlistener to object in Html Object Tag?所述,我找到了这个Google扩展程序({{3} })与我想要的相反。

阅读所有代码并分析它的作用,我发现当一个网站被加载时,它会在文档正文中附加一个脚本,这样就可以右键单击捕获contextmenu事件并停止传播或类似的东西,它的工作原理。

所以我只是将脚本添加到我的网站,它在HTML Object标签内部加载的网站上不起作用,它可以在其他地方使用。但是在使用扩展时,它确实可以在HTML Object标记内部加载的网站中使用。

所以我做了几个测试和调试,发现当网页加载到HTML Object标签内部时,扩展ALSO会将脚本附加到其体内,例如这个简单的代码(非常类似于我使用的代码)上一篇文章):

<html lang="en">
<head>
    <script>
        function fill(){
            document.addEventListener('contextmenu', handleEvent, true);
        }

        function handleEvent (event) {
            alert("working");
        }
    </script>
</head>
<body>
    <button type="button" id="fill" onclick="fill()">Fill</button>
    <object id='miobj' style="width:800px;height:600px;" data="http://validator.w3.org/" />
</body>
</html>

我在html中包含了我的脚本,但扩展程序的作用是通过内容脚本附加脚本(我不知道它何时被触发):

var scp = document.createElement('script');
scp.src = chrome.extension.getURL('web_accessible_resources/index.js');
document.body.appendChild(scp);
function postWebAccessibleResourceMessage (flag) {
    window.postMessage({
        'type': 'enable-right-click',
        'disableRightClick': flag
    }, '*');
}

因此,在启用扩展的情况下,它会将其脚本(web_accessible_resources / index.js)附加到正文,但它也会将其附加到HTML Object标记内的正文中。

显然扩展程序还有一些脚本,但原则仍然存在,所以如果我可以在HTML Object标记内部加载的网站中附加脚本,我就能完成我想做的事情。

任何想法如何将我的脚本附加到HTML Object标记内的网站?

修改 如果由于相同的原始政策而无法执行此操作,为什么Chrome扩展程序能够执行此操作?

0 个答案:

没有答案