小编Rik*_*ard的帖子

使用IE中不起作用的元素的初始宽度

我有一个图形插件,<table>可以在其容器中插入画布和图例.在这个插件table中没有width定义,在我的CSS中,我的插件插入了容器内的表的宽度.

所以,新的div继承table{ width: 100%}自CSS并呈现错误.

我尝试使用width: initial;,在Chrome上看起来不错,但IE不喜欢它 检查浏览器兼容性

我承认在脚本/插件中更改/强制内联CSS,因为它必须在任何环境中工作.

这里最好的解决方案是什么?

css internet-explorer cross-browser width

104
推荐指数
2
解决办法
6万
查看次数

replaceState()vs pushState()

我一直在阅读和寻找replaceState()&之间的优点/缺点pushState().另请阅读Mozilla的文章,以及这个有趣的测试,但我仍然不清楚这些差异.

任何人都在关心他们的不同之处?

javascript html5

81
推荐指数
2
解决办法
4万
查看次数

Element.tagName总是大写的吗?

MDN上阅读有关Element.tagName的信息,它指出:

在标记为HTML文档的DOM树中的HTML元素上,tagName以大写形式返回元素名称.

我的问题是:这是值得信赖的吗?IE(旧的和现代的)表现如预期的那样吗?这可能会改变吗?还是总是合作更好el.tagName.toLowerCase()

javascript

33
推荐指数
5
解决办法
7068
查看次数

如何捕捉touchend坐标?

我试图捕捉touchend事件的触摸坐标,但未定义.该touchstart事件的作品不错,但相同的概念失败上touchend.我建立了这个代码mousedown,并mouseup工作良好.

我错过了什么?

div.addEvent("touchstart", function (event) {
    event.preventDefault(); // to avoid scrolling
    span.innerHTML = event.page.x;
});
div.addEvent("touchend", function (event) {
    span.innerHTML = event.page.x;
});
Run Code Online (Sandbox Code Playgroud)

小提琴

javascript mootools touch

30
推荐指数
3
解决办法
2万
查看次数

从公开的Google日历中获取JSON

我怎样才能得到一个JSON与事件的公共谷歌日历?我有它,ID但没有接受它.我不想改变它的事件,也不想登录.

我想JSON从它获得一个与我PHP/ MySql数据库同步.

试着 https://www.googleapis.com/calendar/v3/calendars/{calendarId}

但是登录错误:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}
Run Code Online (Sandbox Code Playgroud)

php json google-calendar-api

19
推荐指数
2
解决办法
2万
查看次数

具有固定列和标题的可滚动表,具有现代CSS

如何使用现代CSS制作尽可能少的JavaScript表格?

我想要的功能是:

  • 固定柱(定位和宽度)
  • 可在X和Y轴上滚动
  • 在X轴上响应(对于非固定宽度的列).

在此输入图像描述

注意:我确实看到并分析了SO中一些最受欢迎/最常见的问题和答案,例如此处此处.

我知道这可以通过JavaScript事件处理程序进行滚动,以便可以向下/向上移动固定列以跟随主列.我试图构建的功能(但是大量编写脚本)的一个例子可能是这样的.我们还可以将MutationObserver父元素添加到表中以检测大小更改并再次计算表的大小.但这在性能上是昂贵的,而且由于CSS也在不断发展和现代化,我想知道是否有新方法......

是否有2017/2018解决方案,只有CSS或尽可能少的JS开销?

我想避免必须实现像这样容易破解的JavaScript解决方案:

在此输入图像描述

我的想法:

a):position: fixed;在固定列中使用

问题:

  • <td> 元素高度必须由JavaScript定义或计算.
  • 需要一个滚动事件监听器,我们需要以编程方式滚动固定列

b):使用div(s)来"伪造"左列,并在表格中包含可滚动内容

问题:

  • div高度必须与表行高度同步
  • HTML语义丢失,因为固定的"假"列不再是表格语法

c):使用N表只显示每个部分,所以我可以有HTML标记但保留固定的标题/列.

问题:

  • 重复HTML x N.
  • 必须同步大小并使用JavaScript滚动

使用滚动事件监听器和固定的左列,我们可以像这样使用JavaScript:

const firstColumn = [...document.querySelectorAll('table tr > *:first-of-type')];
const tableContainer = document.querySelector('.table-container');
tableContainer.addEventListener('scroll', function() {
    const currentScrollPosition = this.scrollTop * -1;
	firstColumn.forEach(el => el.style.marginTop = currentScrollPosition + 'px');
});
Run Code Online (Sandbox Code Playgroud)
.table-container {
    width: 600px;
    height: 300px;
    overflow-x: scroll;
    overflow-y: …
Run Code Online (Sandbox Code Playgroud)

html javascript css html-table css3

13
推荐指数
1
解决办法
7041
查看次数

如何订阅商店模块

我知道在 Vuex 中我们可以做到,store.subscribe并且我们传递一个回调,该回调在 store 中的每次更改时都会被调用。

在我的应用程序中,我有一个包含许多模块的商店,并且subscribe只想使用特定的 Module 而不必具有这种逻辑if (mutation.type != thisModule.type) return;

是否可以只订阅某些模块?在文档中找不到它

vue.js vuex

12
推荐指数
1
解决办法
2541
查看次数

检查跨域网址是否为404提供了javascript

我正在尝试这个代码,但它给了我一个DOM异常.我希望它使用普通的Javascript从函数中获得真/假"答案".

var url = 'http://www.google.com/';
function UrlExists(url)
{
  var http = new XMLHttpRequest();
  http.open('HEAD', url, false);
  http.send();
  return http.status!=404;
}
UrlExists(url);
Run Code Online (Sandbox Code Playgroud)

小提琴

我从这个 SO答案得到了这个代码,但正如我说的那样,我无法让它工作......

javascript xml ajax

11
推荐指数
1
解决办法
4770
查看次数

在节点中提供文件与数据库的内容

我正在制作旧版静态网站的新版本,该网站长达50多个静态页面.

因此,我使用旧内容制作了一个JSON文件,因此新网站可以更多CMS(具有常用页面的模板),因此后端获得更多干.

我想知道我是否可以通过JSON将这些内容提供给我的观点,或者我是否应该在MySQL数据库中提供它?

我正在使用Node.js,并且在Node I中可以将该JSON文件存储在内存中,因此当用户请求数据时不会进行文件读取.

这有正确的做法吗?服务缓存的JSON文件或通过MySQL提供性能差异?

有问题的文件大约是400Kb.如果文件大小与一个技术的选择相关?

mysql json node.js server

11
推荐指数
2
解决办法
1496
查看次数

字符串并排时具有相同字符的.split()by character

检查以下示例及其结果:

'222'.split('') // ["2", "2", "2"]
'222'.split('2') // ["", "", "", ""]
'2a22a'.split('2') // ["", "a", "", "a"]
Run Code Online (Sandbox Code Playgroud)

为什么最后一个例子不是["", "a", "", "", "a"]

javascript

10
推荐指数
1
解决办法
386
查看次数