【问题标题】:Change HTML text by URL using *.ini config file使用 *.ini 配置文件通过 URL 更改 HTML 文本
【发布时间】:2017-09-01 14:02:57
【问题描述】:

我正在尝试找到一种通过当前显示的 URL 更改 HTML 文本的好方法。我已经列出了所有可能出现在 URL 行中的地址以及存储在 *.ini 文件中的相应文本。

HTML

...
<?php $conf = parse_ini_file('config.ini.php'); ?>
<script type="text/javascript">
 $(function() {
   var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
   var baseurl = window.location.href
   $("ul.navbar li a").each(function(){
     if($(this).attr("href") == pgurl || $(this).attr("href") == baseurl )
     $(this).parent('li').addClass("active");
   })
 });
</script>
...
<h4 class="panel-title">Home</h4>
...
<ul class="navbar">
  <li><a href="<?php echo $conf['webaddr']; ?>"><?php echo $conf['page_0']; ?></a></li>
  <li><a href="<?php echo $conf['page_1_addr']; ?>"><?php echo $conf['page_1']; ?></a></li>
  <li><a href="<?php echo $conf['page_2_addr']; ?>"><?php echo $conf['page_2']; ?></a></li>
  <li><a href="<?php echo $conf['page_3_addr']; ?>"><?php echo $conf['page_3']; ?></a></li>
  <li><a href="<?php echo $conf['page_4_addr']; ?>"><?php echo $conf['page_4']; ?></a></li>
  <li><a href="<?php echo $conf['page_5_addr']; ?>"><?php echo $conf['page_5']; ?></a></li>
  <li><a href="<?php echo $conf['page_6_addr']; ?>"><?php echo $conf['page_6']; ?></a></li>
</ul>
...

*.INI

...
[site_url]
webaddr='http://example.com/';  -- be sure to include forward slash after the web address!

[pages]
page_0='Home';
page_1='Page 1';
page_2='Page 2';
page_3='Page 3';
page_4='Page 4';
page_5='Page 6';
page_6='Page 7';

[pages_addr]
page_0_addr='#';
page_1_addr='page1.php';
page_2_addr='page2.php';
page_3_addr='page3.php';
page_4_addr='page4.php';
page_5_addr='page5.php';
page_6_addr='page6.php';
...

在这种情况下要更改的文本将是 H4 元素中的 Home

虽然最好的解决方案是使用 JavaScript,但我不知道如何正确地将 *.ini 文件解析为 JavaSrcipt 以及如何进行比较。

【问题讨论】:

  • 不清楚你在问什么。我假设parse_ini_file php 函数对你有用。因此,您可以通过复制/粘贴发出的 HTML 将其转换为 javascript 问题(单击网页上的查看源代码)。
  • 我只需要一些方法来更改 h4 中的文本。我虽然 javascript 将是这种情况下的最佳选择,但我在 JavaScript 方面并不是很擅长,而且基本上不知道函数应该是什么样子。它可能在 PHP 中,但我有一种感觉,如果 JavaScript 可以更好地处理这个问题,那么额外的代码行会太多。
  • 另外,由于我已经将 URL 读取为 JavaScript,虽然我可以使用现有的脚本,但只需添加几行额外代码,而不是在 PHP 中再次创建用于读取 URL 的相同函数。

标签: javascript php html url ini


【解决方案1】:

您可以添加$("h4").text($li.text()); 以将&lt;h4&gt; 的文本设置为活动&lt;li&gt; 的文本。

在下面,iframe 作为 stacksn-ps.com/js 运行,因此 js 页面被突出显示。

li {
  list-style: none;
  background: #ddd;
  width: 100px;
  border: 1px solid #eee;
  border-radius: 2px;
}

.active {
  background: #dfd;
  border: 1px solid #efe;
}

a {
 color: gray;
 padding: 10px;
}

a:visited {
  color: gray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
  $(function() {
    var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
    $(".navbar li a").each(function() {
      var $anchor = $(this);
      var $li = $anchor.parent('li');
      if ($anchor.attr("href") === pgurl) {
        $li.addClass("active");
        $("h4").text($li.text());
      }
    })
  });
</script>

<h4 class="panel-title">Home</h4>

<ul class="navbar">
  <li><a href="#">Home</a></li>
  <li><a href="page1.php">Page 1</a></li>
  <li><a href="page2.php">Page 2</a></li>
  <li><a href="js">JavaScript</a></li>
  <li><a href="another">Another</a></li>
</ul>

我添加了一些 CSS,以便您查看哪个是活动的。

【讨论】:

  • 没想到这样,但它的工作原理与我打算使用它完全一样!谢谢很多救生员;)
猜你喜欢
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多