将信息从 Drupal 7 中的模块文件传递给 JS 文件
Passing information to JS File from Module File in Drupal 7
在我的一个网页中,我多次打印一个按钮,并且都有不同的logId。我希望当用户单击时,图片中将有 JQuery,并且不应该有服务器端回发。由于每个按钮都关联了唯一的日志 ID,因此我将信息从 * 传递到 JS 文件。单击按钮时的模块如下:-
*.模块文件 -- PHP 文件
$thm_button .= '<input type="button" class="clsPrevious" id="btnPrev_'.$user->uid.'_'.$logid;>';
*.js 文件
$('.clsPrevious', context).click(function (event) {
var previousLog=this.id.split('_');
//Retrieve log Id and Process the log id using AJAX call
}
这在这里工作正常,但我觉得存在安全问题,因为每个人都可以在 HTML 源代码中查看按钮的日志 ID。
Drupal/PHP/HTML中是否有任何方法可以将敏感信息传递给JS,而不会显示在HTML查看器中。
您可以使用"Drupal.settings"将值从PHP传递到Javascript。
在此处阅读更多相关信息。
您可以创建一个如下所示的输入按钮。
$thm_button .= '<input type="button" class="clsPrevious" data-myModule=" . $key . ">;
其中$key
是随机/串行变量,但每个日志 ID 都是唯一的。
创建一个键值对的映射数组并使用 drupal_add_js() 传递给 javasript
<?php
drupal_add_js(array('myModule' => array('_YOUR_CUSTOM_KEY_1_' => '_LOG_ID_1_')), 'setting');
?>
现在将您的点击功能修改为,
$('.clsPrevious', context).click(function (event) {
var key = $(this).attr("data-myModule");
// Now a this point you have the lookup table in Drupal.settings.myModule
// use the "key" variable to find the LOG ID
}
相关文章:
- 从文本文件js中读取列表
- 当我用ctrl+p搜索时,为什么要在谷歌chrome上使用inspect来调试缺少显示文件js
- 获取用于外部JavaScript文件(.js)的代码提示
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 在 Node 中包含 javascript 文件.js无需 require('.') ing
- 如何使用jquery显示多个文件.多文件.js
- 使用 PDF 打开 PDF 文件.js而不将文件作为查询字符串传递
- 转换颜色十六进制值以用于三个 JSON 文件.js
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 如何在 Gulp 任务中间添加 CSS 文件.js
- 如何从Dropzone上传和删除文件.js
- 如何在视频中添加视频文件.js 4.2.1.
- 从快速节点下载文件.js具有 JWT 授权
- 访问 JavaScript 文件.js中的 C# 变量
- 在节点中热重载外部 js 文件.js如果文件有任何更改
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何在多文件.js中上传文件时检查文件扩展名
- 将文件.js中的var导入到模块joomla的模板中,并使用后台进行修改
- 在path项目中编写文件js脚本