javascript - 根据 JavaScript 中的 session 变量设置特定的样式表

标签 javascript stylesheet

我有一个选项让用户在登录系统时选择他/她自己的主题,该主题在 MYSQL 数据库中设置并在用户每次登录时调用,调用方式为:

<?php $_SESSION['SESS_THEME_NAME']; ?>

现在,我可以在 PHP 文件中使用它,但不幸的是我需要它在 Javascript 中工作。我需要一些帮助。我使用 Google Chrome 上的开发人员工具查看了代码,看起来上面的代码没有在 javascript 文件中解析。这是有道理的,因为您无法访问 javascript 文件中的 session 变量(正如我通过搜索 Google 发现的那样。)

代码基本上应该根据从 MYSQL 数据库提取的值来设置特定的样式表。因此,如果数据库显示“默认”,则脚本需要告诉网页使用“default.css”文件。等等等等。

我写这篇文章的尝试如下:

var themName="<?php $_SESSION['SESS_THEME_NAME']; ?>";

if (themeName == "Default") 
{
    document.write("<link re='stylesheet' type='text/css' href='css/mws-theme.css'>");
};
if (themeName == "Army")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-army.css'>");
};
if (themeName == "Rocky Mountains")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-rocky.css'>");
};
if (themeName == "Chinese Temple")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-chinese.css'>");
};
if (themeName == "Boutique")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-boutique.css'>");
};
if (themeName == "Toxic")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-toxic.css'>");
};
if (themeName == "Aquamarine")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-aquamarine.css'>");
};

任何一次帮助都会很棒,非常感谢!我即将到达最后期限:/

最佳答案

我认为你把这种方式搞得太复杂了。为什么不直接写出 <link>直接使用 PHP 标记?

$themes = array(
  'Default' => '',
  'Army' => '-army',
  'Rocky Mountains' => '-rocky'
  // etc...
);

echo "<link rel='stylesheet' type='text/css' href='css/mws-theme-{$themes[$_SESSION['SESS_THEME_NAME']]}.css'>";

关于javascript - 根据 JavaScript 中的 session 变量设置特定的样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17311431/

相关文章:

javascript - 是否可以本地扩展 Web API 以允许 CSSRule.cssText 返回非标准 css 属性

javascript - 查找不在数组中的项目

javascript - 检测正在移动的 DOM 中元素的位置

css - SharePoint 母版页 css 样式未向其他用户显示

css - HTML 和样式表的疯狂问题 : stuff is showing up that I didn't even write

javascript - Angular Controller 不是一个函数,未定义

javascript - 如何将多个变量从函数传递给jquery attr

javascript - 使用 jQuery 从原始 css 文件中获取值

css - 将 css 样式应用于所有 asp.net 文本框和文本类型的 Html 输入

c# - 通过代码隐藏在 div 中的图像