从Power BI公开嵌入中删除共享栏

4

我有一个关于 Power BI 的报告,已经发布在网上,现在我想通过嵌入代码在本地电脑上创建一个页面来查看它,并共享给 Dropbox 上的其他人。

我希望移除按钮条,其包含社交媒体链接以防止分享。

我能否通过使用 JavaScript 防止显示 iframe 源链接?

请详细描述,因为我是一名数据分析师,不会编写 JavaScript 或 HTML。

谢谢。

嵌入代码:

<iframe width="600" height="373.5" src="https://app.powerbi.com/view?r=eyJrIjoiYWYzNWU3NjktMjRmOC00NjdkLThlZjktZjEzODRhOWE3MTI4IiwidCI6IjFhYTk1NjRiLTE4YmUtNDU3YS04ZmFjLWEyOTZmNjdjMzU5OSJ9&pageName=ReportSection2" frameborder="0" allowFullScreen="true"></iframe>

你无法隐藏它,也无法阻止人们分享它。将报告和数据发布到网络上会使其公开,每个人都可以看到。不要使用想要保密的信息这样做! - Andrey Nikolov
如果您希望保持私密性,可以从问题中删除实时URL。如果您想分享它,我建议为用户购买Power BI许可证。 - Jon
2个回答

3
你可以完全隐藏它,从初始视图中隐藏起来。不要理会那些认为这是不可能的人。
使用“发布到 Web”功能(IFrame)后,将该 URL 放置在以下代码中并粘贴到您的站点中。您需要调整高度和宽度以达到所需的外观。目标是使用 clip:rect 功能。调整高度(在本例中,1040 小于原始的 1080)以限制/截断页脚。
<div id="content">
<div style="height:1080px;width:1920px">
   <iframe width="1920" height="1080" src="PUT URL HERE" frameborder="0" style="position:absolute; clip:rect(0px,1920px,1040px,0px);
            bottom:-0px; allowFullScreen=" true"=""></iframe>
    </div>
</div>

由于clip已经被弃用,最好使用clip-path并使用inset()函数只隐藏底部栏,像这样:style="clip-path: inset(0 0 37px 0);" - Himanshu

0

您是否尝试过使用反向代理来劫持页面并添加样式以隐藏工具栏?我已经成功地使用Cloudflare Workers实现了这一点。

这种方法的另一个好处是您可以从自己的自定义域名显示仪表板。

您需要一个Cloudflare帐户,在其中配置一个带有以下脚本的工作者。如果您将Cloudflare设置为您的名称服务器,那么您可以在工作者上设置自定义重定向,并使用您的域名。

const upstream = 'app.powerbi.com'
const upstream_path = '/'

// Whether to use HTTPS protocol for upstream address.
const https = true

// Whether to disable cache.
const disable_cache = true

addEventListener('fetch', event => {
    event.respondWith(fetchAndApply(event.request));
})

class RemoveElement {
element(element) {
    element.append(`
<style>
.embeddedLandingRootContentLogoVisible { height: 100% }
.logoBarWrapper { display: none }
</style>
`, { html: Boolean })
    console.log(`Incoming element: ${element.tagName}`)
}
}

async function fetchAndApply(request) {

    const region = request.headers.get('cf-ipcountry').toUpperCase();
    const ip_address = request.headers.get('cf-connecting-ip');
    const user_agent = request.headers.get('user-agent');

    let response = null;
    let url = new URL(request.url);
    let url_hostname = url.hostname;

    if (https == true) {
        url.protocol = 'https:';
    } else {
        url.protocol = 'http:';
    }
    var upstream_domain = upstream;

    url.host = upstream_domain;
    if (url.pathname == '/') {
        url.pathname = upstream_path;
    } else {
        url.pathname = upstream_path + url.pathname;
    }


        let method = request.method;
        let request_headers = request.headers;
        let new_request_headers = new Headers(request_headers);

        new_request_headers.set('Host', upstream_domain);
        new_request_headers.set('Referer', url.protocol + '//' + url_hostname);

        let original_response = await fetch(url.href, {
            method: method,
            headers: new_request_headers
        })

        response = new Response(original_response.body, original_response)
        let original_text = null;
        let response_headers = original_response.headers;
        let new_response_headers = new Headers(response_headers);
        let status = original_response.status;

        if (disable_cache) {
            new_response_headers.set('Cache-Control', 'no-store');
        }

        new_response_headers.set('access-control-allow-origin', '*');
        new_response_headers.set('access-control-allow-credentials', true);
        new_response_headers.delete('content-security-policy');
        new_response_headers.delete('content-security-policy-report-only');
        new_response_headers.delete('clear-site-data');

        if (new_response_headers.get("x-pjax-url")) {
            new_response_headers.set("x-pjax-url", response_headers.get("x-pjax-url").replace("//" + upstream_domain, "//" + url_hostname));
        }

        return new HTMLRewriter().on('body', new RemoveElement()).transform(response);
}

一旦准备就绪,新的嵌入式URL将采用以下形式:customdomain.com/view?r=eyJrIjE1NS00......

请查看此存储库以获取进一步说明: https://github.com/Hugoberry/PowerBI-nologo-proxy


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接