如何禁用右键点击页面/弹出窗口打开在Iframe使用javascript/jquery的超链接

How to disable right click on a hyperlink in page/popup open in Iframe using javascript/jquery?

本文关键字:Iframe 使用 javascript 超链接 jquery 右键 何禁用 窗口      更新时间:2023-09-26

我需要禁用右键点击一个锚标签/超链接在页面/使用javascript/jquery在iframe打开弹出窗口?

我有下面的代码逻辑,当我在iframe打开页面,但不工作,当我打开iframe弹出框点击链接在iframe页面

在下面的示例中,当我右键单击打开弹出窗口链接时,它不允许右键单击,但当我通过单击打开弹出窗口链接打开弹出窗口时,它不适用于弹出窗口中的链接。

有什么建议吗?

下面的示例代码片段供参考-

TestPage.html

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <title>Test Page</title>
</head>
<body>
    <iframe id="sampleIframe" src="PopupPage.html" width="400" height="150"></iframe>
    <script language="javascript" type="text/javascript">
        $('#sampleIframe').load(function() {
            $('#sampleIframe').contents().find('a').each(function() {
                $(this).on("contextmenu", function() {
                    return false;
                });
            });
        });
    </script>
</body>
</html>

PopupPage.html

<html>
<head>
    <title>Popup Page</title>
</head>
<body>
    You are on popup page.  
    <a href="javascript:openPopup();">Open Popup</a>
    <script language="javascript" type="text/javascript">
        function openPopup() {
            window.open("LinkPage.html", null,
                "height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");
        }
    </script>
</body>
</html>

LinkPage.html

<html>
<head>
    <title>Link Page</title>
</head>
<body>
    <a href="www.Google.com">Goto Google</a>
    <a href="www.facebook.com">Goto Facebook</a>
</body>
</html>

要做到这一点,您需要在中包含脚本来禁用实际iFrame内容中的链接。

为了演示,使用以下代码创建一个jsfiddle (它不允许我保存它以发布链接)

这将是你的"LinkPage.html"

HTML

<a href="javascript:openPopup();">Open Popup</a>
JAVASCRIPT

function openPopup() {
        window.open("http://jsfiddle.net/t45qvtap/1/show", null,
            "height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");
    }

你会看到它在工作。

为了进一步解释,这是上面代码将在iFrame中打开的文件的内容,这将是你的"PopupPage.html" HTML

This content is in an iframe
<div>
    <a href="www.Google.com">Goto Google</a>
    <a href="www.facebook.com">Goto Facebook</a>
</div>   
JAVASCRIPT

$('body').contents().find('a').each(function() {
            $(this).on("contextmenu", function() {
                return false;
            });
        });