每日前端签到(第四十五天)

第四十五天(2018-09-17)

题目一:
问题
在调用window下的open方法创建一个新窗口的同时,可以获得一个创建窗口的opener句柄,通过target="_blank"点开的窗口活着标签页,子窗口也能捕获opener句柄,通过这个句柄,子窗口可以访问到父窗口的一些属性,虽然很有限,但是却可以修改父窗口的页面地址,让父窗口显示指定的页面。

防范
如果需要限制window.opener的访问行为,我们只需要在原始页面每个使用了target="_blank"的链接中加上一个rel="noopener"属性。
但是,火狐并不支持这个属性值,火狐浏览器里需要写成rel="noreferrer",所以我们可以将两个属性值合并写成rel="noopener noreferrer"来完整覆盖。

<a href="https://www.baidu.com" target="_blank" rel="noopener noreferrer nofollow">内容</a>

nofollow 是HTML页面中a标签的属性值。这个标签的意义是告诉搜索引擎"不要追踪此网页上的链接或不要追踪此特定链接"。

我理解的就是:

html是名词--表现
css是形容词--结构
javascript是动词--行为
以上这三个东西就形成了一个完整的网页,但是js改变时,可以会造成css和html的混乱,让这三个的界限不是那么清晰。

这个时候,web标准就出来了,web标准一般是将该三部分独立分开,使其更具有模块化。

W3C对web标准提出了规范化的要求,也就是在实际编程中的一些代码规范:包含如下几点

1.对于结构要求:(标签规范可以提高搜索引擎对页面的抓取效率,对SEO很有帮助)

标签字母要小写
标签要闭合
标签不允许随意嵌套
2.对于css和js来说

尽量使用外链css样式表和js脚本。是结构、表现和行为分为三块,符合规范。同时提高页面渲染速度,提高用户的体验。
样式尽量少用行间样式表,使结构与表现分离,标签的id和class等属性命名要做到见文知义,标签越少,加载越快,用户体验提高,代码维护简单,便于改版

这里顺便解释下什么是web标签语义化,即用正确的标签做正确的事情。

比如:

W3C组织意识到了之前HTML版本的不足,推出的HTML5进一步推进了Web语义化发展,采用了诸如footer、section等语义化标签,弥补了采用id="footer"或者class="footer"形式的不足,以更好的推动Web的发展。
题目二:
协商解决, 如果是重要信息, 如logo等, 使用图片, iconfont.

题目三:

const countDown = (range = "day") => {
  const nowDate = new Date();
  const currentYear = nowDate.getFullYear();
  const nextYear = new Date(currentYear + 1, 1, 1);

  const rangeBase = {
    minute: 1000 * 60,
    hour: 1000 * 60 * 60,
    day: 1000 * 60 * 60 * 24,
    week: 1000 * 60 * 60 * 24 * 7,
    month: 1000 * 60 * 60 * 24 * 30
  };

  return Math.floor(
    (nextYear.valueOf() - nowDate.valueOf()) /
      (rangeBase[range] || rangeBase.day)
  );
};

console.log(countDown("hour"));
console.log(countDown());
console.log(countDown("week"));
console.log(countDown("month"));

题目四:
起因:我们公司官网的某几个图中使用了**字体。

经过:刚开始产品可能没有什么知名度,所以一直相安无事。
突然有一天,公司收到了律师邮件,说是使用版权文字,限多少天内修改,否则就要付费,一个字每月还是每天来着,多少多少钱,反正挺贵的。

结果:把图片中文字改为标准黑体,结束了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容