方式1:直接使用 iframe(推荐)
<iframe
src="http://localhost:5292/report/viewer?templateId=1&dataUrl=https://example.com/data.json"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>
方式2:JavaScript 动态加载
<script>
function loadReport(templateId, dataUrl) {
var url = 'http://localhost:5292/report/viewer?templateId=' + templateId;
if (dataUrl) {
url += '&dataUrl=' + encodeURIComponent(dataUrl);
}
document.getElementById('viewerFrame').src = url;
}
// 使用示例
loadReport(1, 'https://example.com/data.json');
</script>
方式3:React 组件
function ReportViewer({ templateId, dataUrl }) {
const viewerUrl = `http://localhost:5292/report/viewer?templateId=${templateId}${
dataUrl ? '&dataUrl=' + encodeURIComponent(dataUrl) : ''
}`;
return (
<iframe
src={viewerUrl}
width="100%"
height="600"
frameBorder="0"
style={{ border: 'none' }}
/>
);
}
方式4:Vue 组件
<template>
<iframe
:src="viewerUrl"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>
</template>
<script>
export default {
props: ['templateId', 'dataUrl'],
computed: {
viewerUrl() {
let url = `http://localhost:5292/report/viewer?templateId=${this.templateId}`;
if (this.dataUrl) {
url += '&dataUrl=' + encodeURIComponent(this.dataUrl);
}
return url;
}
}
}
</script>