我刚将Google reCAPTCHA 2.0集成到我的网站中.它在Chrome,Firefox和Edge中按预期工作,但在我的MacBook Pro上无法在Safari中显示.
reCAPTCHA正在这样的dhtmlXForm中使用......
...
{ type:"label", name:"myrecaptcha", label:"<div class=\"g-recaptcha\" data-sitekey=\"MY_KEY_HERE\"></div>", offsetLeft:320 },
...
Run Code Online (Sandbox Code Playgroud)
在除Safari之外的所有浏览器中生成此...
但在Safari中它似乎没有......
控制台中没有错误.我已经清除了所有浏览器缓存.该api.js行的位置紧跟在结束</head>标记之前,如Google的文档所述.不知道还有什么可以尝试.
更新:在Safari中,当我检查reCAPTCHA应该显示的区域时,我只看到<div class="g-recaptcha" data-sitekey="MY_KEY_HERE"></div>其中没有任何内容的原始内容.因此,出于某种原因,它不会将iframe放入该div中.希望有所帮助.
如上所述,这种情况发生在Safari中,而在Chrome和Firefox中它运行良好.
我认为这是因为变成json的对象有两个包含moment对象的属性.我将它们更改为日期对象并stringify传递了函数.
奇怪的是,如果我尝试这样做JSON.stringify(moment())是有效的,所以我不知道如何调试它并找到问题所在.
以下是Safari中错误的屏幕截图:

编辑:
经过一些调试后,我发现dhtmlxwindow onclose事件发生后会发生此错误.我在一个dhtmlx窗口中加载一个局部视图,在那里我创建了这个对象,在关闭窗口之前,该对象被推入一个初始化为父视图的列表中.
在我关闭窗口之前我做了,JSON.stringify(parent.addedContracts)并且在onclose事件发生后它工作正常(我没有覆盖代码)列表具有相同的对象(我检查了所有属性)但是stringify同一列表失败.
编辑:
创建添加到列表中的对象如下:
var contractStartDate = moment(contractStartDateCalendar.getDate(true), "L");
var contractEndDate = moment(contractEndDateCalendar.getDate(true), "L");
var newContract = {
Id : uniqueId,
FunctionDesc : $("#contractFunction").val(),
ContractHours : $("#contractHours").val(),
AdditionalCostFactor: $("#contractAdditionalCostFactor").val().replace(',', '.'),
VacationFormula : contractHolidayCostFactor,
StartDate : contractStartDate,
EndDate : contractEndDate,
Notes : Encoder.htmlEncode(tinyMCE.get('contractNotes').getContent()),
DaysOfWeek : workingDaysString,
PlusMinus : $("#contractTypeDropdown option:selected").data("plusminus"),
SalaryCalculation : $("#contractTypeDropdown option:selected").data("salarycalculation"),
ContractTypeId : $("#contractTypeDropdown").val(),
ContractTypeName : $("#contractTypeDropdown option:selected").text(), …Run Code Online (Sandbox Code Playgroud) 我正在将我的DHTMLX网格导出到csv,并且已成功创建.CSV文件.我遇到的问题是它没有提示用户保存/打开文件.我正在使用来自javascript的$ .post调用将CSV字符串发送到PHP,然后将该字符串写入csv.由于某种原因,它不是为用户创建提示,但它成功写入文件并保存在服务器上.以下是相关代码:
JS:
myGrid.csvParser = myGrid.csvExtParser;
myGrid.setCSVDelimiter('|');
myGrid.csv.row = "endOfRow";
var gridCsvData = myGrid.serializeToCSV();
$.post(
"data/export.php",
{
csvdata: gridCsvData
}
);
Run Code Online (Sandbox Code Playgroud)
PHP(export.php):
$csvData = $_REQUEST['csvdata'];
$csv = explode('endOfRow',$csvData);
$myfile = "grid.csv";
$fh = fopen($myfile, 'w') or die("can't open file");
foreach($csv as $line) {
fputcsv($fh, explode('|',$line),',','"');
}
fclose($fh);
//Redirect output to a client's web browser (csv)
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=grid.csv");
header("Pragma: no-cache");
header("Expires: 0");
Run Code Online (Sandbox Code Playgroud)
这段代码完美地运行,因为它按照我想要的方式导出Grid并将其保存到'grid.csv'.问题是它没有提示用户保存文件.这是我的PHP标题的问题还是我需要在$ .post中添加一些东西来提示成功?谢谢你的帮助!
我将开发一个基于PHP和MySQL数据库的商业Web应用程序.
现在,我猜测JavaScript框架.我找到了几个有趣的框架,如ExtJS,JQWidgets或DHTMLX.
他们的一些组件可以在这里测试:
但是,我无法找到最近的比较.
你能否就这些框架给我你的意见(优点/缺点):
谢谢.
如何在Angular.js应用程序中使用Dhtmlx?
Dhtmlx有很多组件可以使用,但我想也有Angular.js的好处.
是否可以在Angular.js页面中使用Dhtmlx组件?如果是这样,怎么样?
你能告诉我一些示例代码吗?
我在javascript dhtmlx中编写代码。我在网格上有一个onclick事件。当我单击网格时,出现一个窗口,我想在4秒后消失。我尝试了setTimeOut,但是连续2-3次单击后,它弄乱了时间,几乎立即隐藏了窗口。这是代码:
var dhxWindow = new dhx.Window({
modal: false,
header: false,
footer: false,
resizable: false,
css: "toolbar",
movable: false,
height: 130,
expire: 4000
});
var toolbar = new dhx.Toolbar("toolbar_container", {
});
grid.events.on("CellClick", function (row, column, e) {
var data = [
{
id: "data1",
type: "imageButton",
},
{
id: "data2",
type: "imageButton",
},
{
id: "data3",
type: "imageButton",
}
];
toolbar.data.parse(data);
dhxWindow.attach(toolbar);
dhxWindow.show();
setTimeout(function () {
dhxWindow.hide();
}, 4000);
});
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢
当我加载Web时,DHTMLX Scheduler加载当天(今天)的视图.但是,如果我去其他过去的日子,我可以获得约会吗?例如:
今天= 02/05/2013
我使用左箭头显示25/04/2013的事件.然后,使用javascript,我可以得到像使用scheduler.init("",date,"")直接将调度程序重新加载到此日期之类的操作吗?
谢谢.
我有2列dhtmlx grid table.我想dropdown menu为每个单元格填充第二列.
我生成xml document的C#
该generated xml文件在C#:
<rows>
<head>
<column type="ed" width="205" sort="str">Product</column>
<column type="co" width="205" sort="na" id="last">Class</column>
</head>
<row id="1">
<cell>Product_name_1</cell>
<cell>
<select>
<option id="1" value="1">first_option</option>
<option id="2" value="2">second_option</option>
</select>
</cell>
</row>
<row id="2">
<cell>Product_name_2</cell>
<cell>
<select>
<option id="3" value="4">first_option</option>
<option id="4" value="4">second_option</option>
</select>
</cell>
</row>
</rows>
Run Code Online (Sandbox Code Playgroud)
Html并且Javascript code:
<body>
<div id="mygrid_container" style="width:1026px;height:500px"></div>
<script>
var mygrid;
$(document).ready(function () {
$.ajax({
url: "/Admin/XMLForProducts",
dataType: "json", …Run Code Online (Sandbox Code Playgroud) 无法将选项加载到dhtmlxCombo中.我尝试以下方法:
myForm = new dhtmlXForm("dhtmlxForm");
myForm.loadStruct("codebase/form.xml");
var combo = myForm.getCombo("xVolumeStatus");
combo.load("codebase/options.xml");
combo.selectOption(2, false, true);
Run Code Online (Sandbox Code Playgroud)
但是组合是未定义的
我有2个dhtmlxSidebars像样品中 这里 如何设置不同的背景颜色,以嵌套一个?如果我添加CSS
.dhxsidebar_side {
background-color: # 427C9C !important;
}
Run Code Online (Sandbox Code Playgroud)
它适用于两个背景的变化......
我用几个控件构建了dhtmlxForm,其中一个是容器内的dhtmlxGrid.我需要使用dhtmlxConnector render_array加载表单数据,但不知道最好的方法.
var myForm, myGrid;
var formData = [{type: "settings", position: "label-left", inputWidth: 150, labelWidth: 90},{type: "block", name: "buttonBlock", width: 500, list: [{type: "button", name: "btn1", value: "Patrick"},{type: "newcolumn", offsetLeft: 20},{type: "button", name: "btn2", value: "Edgar"},{type: "newcolumn", offsetLeft: 20},{type: "button", name: "btn3", value: "Renee"}]},{type: "block", width: 500, list: [{type: "input", name: "name", label: "Name"},{type: "input", name: "email", label: "E-mail"},{type: "input", name: "age", label: "Age", width: 70},{type: "select", name: "sex", label: "Sex", width: 70, options:[{text: "Male", value: "m"},{text: "Female", value: "f"}]},{type: …Run Code Online (Sandbox Code Playgroud) 我正在使用dhtmlxScheduler库开发一个调度程序.我需要添加显示当前时间的垂直线.它的位置应该每分钟更新一次.我想知道以前有人做过类似的事.我搜索了可用的解决方案,但我还没有找到任何示例.那么,如何解决这个问题呢?
这直到昨天才有效,所以我相信 typescript 或 dhtmlxgantt 上发生了一些变化。
我在编译时遇到这些错误:
error TS2306: File 'projectPath/node_modules/@types/dhtmlxgantt/index.d.ts' is not a module.
src/app/shared/components/gantt/gantt.component.ts(11,17): error TS6137: Cannot import type declaration files. Consider importing 'dhtmlxgantt' instead of '@types/dhtmlxgantt'
我也尝试使用他们的演示代码并遇到相同的错误: https: //github.com/DHTMLX/angular2-gantt-demo
有没有人遇到过同样的问题并且可以阐明一些?