gpt4 book ai didi

javascript - dojo contentPane,我在我的 ContentPane 中发布带有 href 的 html 代码。 html代码有脚本但不起作用,为什么?

转载 作者:行者123 更新时间:2023-11-30 17:33:36 25 4
gpt4 key购买 nike

我在我的应用程序中使用 dojo 1.9。我在我的 ContentPane 中发布带有 href 的 html 代码。 html 代码有脚本但不起作用。

index.html代码:

<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/claro.css">
<script> dojoConfig = {parseOnLoad: true} </script>
<script>
require(
["dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/TabContainer", "dijit/layout/AccordionContainer", "dijit/layout/ContentPane", "dijit/layout/AccordionPane","dijit/form/Button"]
);
</script>
</head>
<body class="claro">
<script src="dojo/dojo.js"></script>
<div data-dojo-type="dijit/layout/BorderContainer" style="width: 100%;height: 100%;position: absolute;z-index:1" id="main">
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'" >
<img src="ds.png" alt="ds" style="float: left; margin-right: 50px;">
<img src="user.png" alt="ds" style="float: right; height: 90px;">
<div style="float: right;margin-right: 10px;">
<div id="loginName"> </div>
<div id="email"></div>
</div>
</div>
<div data-dojo-type="dijit/layout/AccordionContainer" data-dojo-props="region:'leading'">
<div data-dojo-type="dijit/layout/AccordionPane" title="pane #1"> panel #1</div>
<div data-dojo-type="dijit/layout/AccordionPane" title="pane #2"> panel #2</div>
<div data-dojo-type="dijit/layout/AccordionPane" title="pane #3"> panel #3</div>
</div>
<div data-dojo-type="dijit/layout/TabContainer" data-dojo-props="region:'center'">
<div data-dojo-type="dijit/layout/ContentPane" title="tab #1" >panel #1</div>
<div data-dojo-type="dijit/layout/ContentPane" title="tab #2" href="app/view/second.html"></div>
<div data-dojo-type="dijit/layout/ContentPane" title="tab #3" href="app/view/third.html"></div>
</div>
<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'">Footer</div>
</div>
</body>
</html>

和app/view/third.html代码:

<button  type="button"  id="bpru">Click me!</button>

<div id="pp"></div>
<script>
on(dom.byId("bpru"), "click", function(){
domConst.place("<bold>hello!!!</bold>", "pp");
});

</script>

为什么脚本代码不起作用?

最佳答案

那是因为它被选择不以这种方式工作。使用 JavaScript,您可以轻松检索外部内容,但当您加载外部内容时,脚本不会被解释。

如果你想这样做,你必须使用 eval()在您的内容上运行以评估页面上的脚本。但是,这通常被认为是一种不好的做法,因为如果实现不当,可能会给您的网站引入多个注入(inject)漏洞。在 this answer 中阅读更多相关信息,它涵盖了将其视为不良做法的所有原因。

如果您仍想在远程页面上执行脚本,请使用 dojox/layout/ContentPane 模块。此模块与 dijit/layout/ContentPane 非常相似但它有一个名为 executeScripts 的属性允许您执行远程脚本。

因此您的 HTML 代码 (index.html) 可能包含如下内容:

<div data-dojo-type="dojox/layout/ContentPane" title="tab #3" data-dojo-props="href: 'app/view/third.html', executeScripts: true"></div>

* 小记:我也转换了你的hrefdata-dojo-props选择。你不必那样做,但据我所知 href不是 <div> 的正确属性元素,所以这个 HTML 更有效。

关于javascript - dojo contentPane,我在我的 ContentPane 中发布带有 href 的 html 代码。 html代码有脚本但不起作用,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com