有没有办法通过CSS设置元素的onload?

时间:2016-06-21 19:03:08

标签: javascript css

我有一个.js文件,它允许我检测正在运行的浏览器或操作系统,然后将其集成到CSS中,制作一些“if”语句,如果是移动设备,则将其设置为具有这些属性。因此,当窗口或正文被加载时,我想要一个特定的javascript函数,当且仅当平台是移动的时候,否则运行默认函数。我相信,我有能力做到这一点,但我似乎找不到通过CSS在body {}上设置onload参数的方法,以便设置关于正文和移动平台的if语句。 CSS中有没有办法改变onload?

以下是浏览器选择器:http://www.dreamquest.io/css_browser_selector.js

以下是我希望CSS看起来像的例子。

.mobile body {
  onload = "javascript:setBackgroundMobile";
}

编辑:好的,我已将此代码添加到我的javascript:

document.addEventListener("DOMContentLoaded", function(event) {
  if (window.screen.availHeight < "600") {
    setBackgroundMobile();
  }
  else if (window.screen.availHeight >= "600") {
    setBackground();
  }
});

在我的Android手机和我的Windows PC上,其他都成功运行了。我认为是因为在我的手机上,我的屏幕旋转起初是垂直的。刚刚验证,是的,当站点在垂直方向上加载时,它会加载第二个if,如果它在水平方向上,它会执行第一个。这是有问题的,但它是whatevs。我会想出办法。谢谢你的消息,伙计。

2 个答案:

答案 0 :(得分:2)

不,使用CSS无法做到这一点。

CSS管理样式。它知道HTML属性,因为你可以在选择器中使用它们,但就是这样。 CSS无法创建或修改它们,也可能永远不会,因为它不是为此目的而设计的。

答案 1 :(得分:0)

我使用http://www.w3schools.com/jsref/prop_nav_useragent.asp

然后加载一个新的css flie。你应该尝试为禁用javascript的人使用CSS。