Orbeon JavaScript 嵌入:a.querySelector 不是函数

Posted

技术标签:

【中文标题】Orbeon JavaScript 嵌入:a.querySelector 不是函数【英文标题】:Orbeon JavaScript Embedding: a.querySelector is not a function 【发布时间】:2021-08-25 06:38:52 【问题描述】:

我正在尝试使用 orbeon javascript 嵌入 API,但由于某种原因,我无法使其正常工作。我可能会遗漏一些东西。我a,将表单嵌入到页面中,这是我尝试如何做的一个sn-p。

ORBEON.fr.API.embedForm(
        'div#orbeon-container',
        '/orbeon',
        'App1',
        'Form1',
        'new'
    );

然而,我收到此错误Uncaught TypeError: a.querySelector is not a function。 我认为这可能是因为我如何指定容器,但我不确定它应该如何指定为 documentation on embedding 似乎没有给出这个例子。

【问题讨论】:

【参考方案1】:

您链接的文档指出第一个参数的类型为 htmlElement(这与您可能用来解决它的 CSS 选择器不太一样)。

Parameter Optional Type Example Description
container No HTML element DOM element you want the form to be placed in

换句话说,而不是

ORBEON.fr.API.embedForm(
    'div#orbeon-container',
    '/orbeon',
    'App1',
    'Form1',
    'new'
);

应该是

let orbeonContainer = document.querySelector('#orbeon-container');

ORBEON.fr.API.embedForm(
    orbeonContainer,
    '/orbeon',
    'App1',
    'Form1',
    'new'
);

【讨论】:

我试过的时候还是不行(这是我尝试的第一件事),让我再试一次,也许这次会成功。谢谢 如果这不起作用,那么至少错误消息必须已更改,因为orbeonContainer 肯定会有一个querySelector 方法,只要元素实际存在。现在,是吗? 抱歉,我一直在关注应用程序的其他部分,没有时间尝试。我已经尝试过了,但仍然是同样的问题。它不能解决问题。抄送:@ebruchez 哦,等等,我认为这可能真的有效,我现在看到一个不同的问题,与上下文有关。我正在尝试从不同的服务器/API 加载,使用 /orbeon 解析为与 Web 应用程序相同的 URL,但我想从不同的端点加载。 @Reiosantos JavaScript 嵌入最终对你有用吗?如果您对 JavaScript 嵌入 API 仍有任何未解决的问题,请随时在此处发表评论。 -亚历克斯【参考方案2】:

可能的问题是第一个参数必须是 DOM 元素,而不是字符串。尝试改为传递元素。

【讨论】:

以上是关于Orbeon JavaScript 嵌入:a.querySelector 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

Orbeon FormBuilder 嵌入

嵌入式 orbeon - 如何定义语言

Orbeon 使 Authorization 标头可选

Orbeon Forms - 引用模板部分之外的控件值

Orbeon 标头身份验证

将 orbeon 表单包含到 Angular 应用程序中