我试图使用 interact.js 阻止我的元素重叠,但我不知道如何让 n 个元素能够做到这一点。有人有想法吗?或者我可以通过其他方式验证它。\n尝试解决这个问题,但我不明白如何获取元素列表来遍历它。在此输入链接描述
\nwindow.dragMoveListener = dragMoveListener;\n\n interact(\'.signer-box\')\n .draggable({\n onmove: dragMoveListener,\n inertia: true,\n autoScroll: true,\n restrict: {\n elementRect: {top: 0, left: 0, bottom: 1, right: 1}\n }\n })\n .resizable({\n onmove: resizeMoveListener,\n inertia: true,\n edges: {left: true, right: true, bottom: true, top: true}\n })\n\nconst boxes = document.getElementsByClassName("signer-box");\n\nfunction dragMoveListener(event) {\n \n const self = {\n x: event.target.offsetLeft + event.dx,\n y: event.target.offsetTop + event.dy,\n width: event.target.offsetWidth,\n height: event.target.offsetHeight\n }\n\n if (!collides(self, event)) {\n event.target.style.left = event.target.offsetLeft + event.dx …Run Code Online (Sandbox Code Playgroud)我正在为前端使用 Javascript 制作一个 Web 应用程序,这就是它的工作原理:
我启动应用程序,它通过我的浏览器打开一个网页。
它显示从我的目录中获得的 PDF 页面。
我可以选择单击图章并在 pdf 中拖动和移动并放置在我想要的任何位置。
完成后,我可以单击“保存”,它会自动将 pdf 文件保存在我的目录中。
我可以打开文件夹中的 pdf 文件以查看更新的 PDF 以及添加的图章。
问题是当我打开PDF文件查看时,定位与Web浏览器中图章的定位不相同。
window.dragMoveListener = dragMoveListener;
interact('.signer-box')
.draggable({
onmove: dragMoveListener,
inertia: true,
autoScroll: true,
restrict: {
elementRect: {top: 0, left: 0, bottom: 1, right: 1}
}
})
.resizable({
onmove: resizeMoveListener,
inertia: true,
edges: {left: true, right: true, bottom: true, top: true}
})
function dragMoveListener(event) {
var target = event.target;
var x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
var y = (parseFloat(target.getAttribute('data-y')) || …Run Code Online (Sandbox Code Playgroud)我在将我的 struts struts2-core-2.5.30 项目版本更新到 struts2-core-6.1.1 时遇到问题,因此我开始收到一条错误,表明安全策略已被违反,做了一些研究,我发现标头应该添加
[仅限报告] 拒绝加载脚本 '',因为它违反了以下内容安全策略指令:“script-src 'nonce-MOz6w31eaDHGUDfV__K8LEZ1' 'strict-dynamic' http: https:”。请注意,存在“strict-dynamic”,因此基于主机的白名单被禁用。请注意,“script-src-elem”未明确设置,因此“script-src”用作后备。
在这个错误中我有这个描述
[仅限报告] 拒绝加载脚本
http://localhost:8080/Portal/html/js/jquery/jquery-1.8.3.min.js,因为它违反了以下内容安全策略指令:“script-src 'nonce-MOz6w31eaDHGUDfV__K8LEZ1' 'strict-dynamic' http: https:”。请注意,存在“strict-dynamic”,因此基于主机的白名单被禁用。请注意,“script-src-elem”未明确设置,因此“script-src”用作后备。
[仅限报告] 拒绝加载脚本
http://localhost:8080/Portal/html/js/jquery/jquery-ui.1.10.4.min.js,因为它违反了以下内容安全策略指令:“script-src 'nonce-MOz6w31eaDHGUDfV__K8LEZ1' 'strict-dynamic' http: https:”。请注意,存在“strict-dynamic”,因此基于主机的白名单被禁用。请注意,“script-src-elem”未明确设置,因此“script-src”用作后备。
不过我尝试过这些标题
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">
<meta http-equiv="Content-Security-Policy" content="default-src *;
style-src * 'unsafe-inline'; script-src * 'unsafe-inline'
'unsafe-eval'; img-src * data: 'unsafe-inline'; connect-src *
'unsafe-inline'; frame-src *;">
<meta http-equiv="Content-Security-Policy" content="default-src 'nonce-rAnd0m'">
<script src="${pageContext.request.contextPath}/html/js/jquery/jquery-1.8.3.min.js" type="text/javascript" nonce="rAnd0m123"></script>
Run Code Online (Sandbox Code Playgroud)
对于它们中的每一个,我都会遇到相同的错误,在我以前的 Struts 版本中,它没有要求我提供任何这些信息。
我还尝试制作一个拦截器来添加相应的指令,但它对我来说也不起作用。
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.StrutsStatics;
public class SessionInterceptor …Run Code Online (Sandbox Code Playgroud) 我想使用 Azure 实现 SSO 到使用 Struts 2 构建的应用程序,我已经实现了过滤器以使我可以从 Microsoft 页面登录。
然而,当一切正确时的重定向问题对我来说不太清楚,因为我不太擅长 Struts,因为当您最初登录到应用程序时,它会重定向到这样的 URL localhost:8080/Portal/login/loginAction_validateUser.action。
这是应用程序的原始登录类
public class ActionLogin extends ActionSupport implements ServletRequestAware {
private static Logger logger = LogManager.getLogger(ActionLogin.class);
private HttpServletRequest request;
private UtilHttp uhttp = new UtilHttp();
private UtilFiles ufiles = new UtilFiles();
private User user;
private Person person;
private int invalidateSession;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public String validateUser() {
try {
HttpSession session = request.getSession();
uhttp.cleanSession(request);
LoginBusiness business = new LoginBusiness();
String …Run Code Online (Sandbox Code Playgroud)