fastapi-amis-admin
fastapi-amis-admin copied to clipboard
iframe无法指定外部src
当iframe的src指定为不以site_url开头的外部地址时候,这个iframe page就无法加载。
查看源码后感觉这个判断有问题 https://github.com/amisadmin/fastapi_amis_admin/blob/7e5d603a40755f772275d857e9b26276bd332029/fastapi_amis_admin/admin/admin.py#L647-L650
应该改成这样:
if self.site.settings.site_url and iframe.src.startswith(self.site.settings.site_url):
self.page_schema.url = re.sub(r"^https?://", "", iframe.src)
else:
self.page_schema.url = iframe.src
您好, 欢迎本地测试后提交pr,最近比较忙可能测试不过来.
这个判断的具体目的是什么呢
保证左侧的菜单栏iframe页面, 直接点击能够在当前页面打开, 并且右键能够以新标签页的形式打开.
我目前没遇这个场景。如果设置src为https://example.com/
,那么按照当前的逻辑实际渲染出来iframe的src就成了//example.com/
,页面无法正常加载。
@site.register_admin
class AmisEditorAdmin(admin.IframeAdmin):
group_schema = None
page_schema = amis.PageSchema(label='AmisEditorDemo', icon='fa fa-edit', sort=-100)
src = 'https://aisuda.github.io/amis-editor-demo/'
fastapi_user_auth_demo 示例程序中以上代码显示正常, 确保目标链接支持iframe
我测试了下如果src带端口号的话那么这页就不会在侧边栏菜单出现
我测试了下如果src带端口号的话那么这页就不会在侧边栏菜单出现
这个很大可能性是amis的限制, 他的路由路径不能包含某些特殊字符.
我测试了下如果src带端口号的话那么这页就不会在侧边栏菜单出现
是否全部src都需要执行这个正则替换
self.page_schema.url = re.sub(r"^https?:", "", iframe.src)
如果我把这个判断去掉的话tab就会正常出现