小编Mot*_*tie的帖子

让用户添加自己的样式表是一个坏主意吗?

我是php的新手,我试图弄清楚这是一个坏主意或安全风险.

我有一个数据表,我提供给用户,它有一个加载的默认样式表,但如果用户想要包含他们自己的,我已经做到了,所以他们可以只指向他们的样式表:

http://www.mysite.com/info.php?css=http://www.someothersite.com/mystylesheet.css
Run Code Online (Sandbox Code Playgroud)

我已经尝试在css文件中添加关闭样式标记和javascript,但DOM似乎只是将其加载为无法处理的CSS.

我从未见过任何其他网站允许这种添加样式表的方法,所以,这是一个好主意还是坏主意?我以为我可以让脚本加载文件并查找javascript中使用的关键字,但是通过我的测试,我不确定我是否需要这样做.


更新:我正在添加CSS如下:

<link href="<?php echo (isset($_GET['css'])) ? $_GET['css'] : 'default.css'; ?>" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

php security stylesheet

4
推荐指数
1
解决办法
271
查看次数

无法解析格式不佳的XML

我一直试图解析这个feed.如果单击该链接,您会注意到它甚至无法在浏览器中正确解析它.

无论如何,我的托管服务不会让我使用simplexml_load_file,所以我一直在使用cURL来获取它然后将字符串加载到DOM中,如下所示:

$dom = new DOMDocument;
$dom->loadXML($rawXML);
if (!$dom) {
 echo 'Error while parsing the document';
 exit;
}
$xml = simplexml_import_dom($dom);
Run Code Online (Sandbox Code Playgroud)

但我得到错误("DOMDocument :: loadXML()[domdocument.loadxml]:Entity'nbsp'未在Entity"中定义,然后我尝试使用SimpleXMLElement没有运气(它显示相同的错误"解析器错误:实体'nbsp'未定义"等等......因为该元素中的HTML).

$xml = new SimpleXMLElement($rawXML);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何跳过/忽略/删除该元素,以便我可以解析其余的数据?


编辑:感谢mjv的解决方案!...我刚刚做了这个(对于其他有同样问题的人)

$rawXML = str_replace('<description>','<description><![CDATA[',$rawXML);
$rawXML = str_replace('</description>',']]></description>',$rawXML);
Run Code Online (Sandbox Code Playgroud)

php xml simplexml xml-parsing

3
推荐指数
1
解决办法
2209
查看次数

删除XSLT中引号内的空格

我正在尝试从XML格式化表格.可以说我在XML中有这一行

<country>Dominican Republic</country>
Run Code Online (Sandbox Code Playgroud)

我想让我的桌子看起来像这样

<td class="country DominicanRepublic">Dominican Republic</td>
Run Code Online (Sandbox Code Playgroud)

我试过这个:

<td class="country {country}"><xsl:value-of select="country"/></td>
Run Code Online (Sandbox Code Playgroud)

这个:

<xsl:element name="td">
 <xsl:attribute name="class">
  <xsl:text>country </xsl:text>
  <xsl:value-of select="normalize-space(country)"/>
 </xsl:attribute>
<xsl:value-of select="country"/>
</xsl:element>
Run Code Online (Sandbox Code Playgroud)

normalize-space()不删除名字的两个部分之间的空间,我不能用<xsl:strip-space elements="country"/>,因为我需要空间,当我显示表格单元格中的名称.

如何从类中的值中删除空格,而不是单元格中的文本?

xslt whitespace

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

检测jQuery对象

我正在为jQuery编写一个插件,我希望这样做,以便用户可以以任何形式将数据传递给插件.我解决了JSON或数组问题,但我无法确定数据是否是jQuery对象.

data = $('#list li');
console.debug( $.isPlainObject(data) );   // false
console.debug( $.isArray(data) );         // false
console.debug( data[0].tagName == "LI" ); // true, but see note below
Run Code Online (Sandbox Code Playgroud)

最后一个方法返回true,但不保证用户正在LI为其数据使用标记,所以我想我需要这样的东西:

if ( $.isjQueryObject(data) ) { /* do something */ }
Run Code Online (Sandbox Code Playgroud)

有谁知道更好的方法?

javascript jquery object

3
推荐指数
1
解决办法
817
查看次数

正则表达式 - 处理括号

我得到的正则表达式更好,但我仍然有一些麻烦......我试图从一组使用正则表达式的括号内提取值.我遇到的问题是这个集合之前是一个左括号.

这里有些例子:

'x(1)'.match(/\((.+?)\)/)[1] // returns "1" as expected
'\)(1)'.match(/\((.+?)\)/)[1] // returns "1" as expected
Run Code Online (Sandbox Code Playgroud)

括号前的字符可以是任何字符,包括另一个左括号

'\((1)'.match(/\((.+?)\)/)[1] // returns "(1", but I only want "1"
Run Code Online (Sandbox Code Playgroud)

这只是字符串的一小部分,所以这部分已经拆分了.

任何帮助,将不胜感激!

javascript regex

3
推荐指数
1
解决办法
2970
查看次数

虚拟键盘插件的位置

我正在使用这个插件(http://www.jquery4u.com/plugins/jquery-screen-keyboard-plugin/#.UCTg6p1lTkd)为Kiosk创建一个屏幕键盘.它工作得很好,但是我需要键盘出现在屏幕底部而不是输入/文本区域下方.

在外部jquery.keyboard.js文件中,我发现了以下内容:

$.keyboard.defaultOptions = {

        // *** choose layout & positioning ***
        layout       : 'qwerty',
        customLayout : null,

        position     : {
            of : null, // optional - null (attach to input/textarea) or a jQuery object (attach elsewhere)
            my : 'center top',
            at : 'center top',
            at2: 'center bottom' // used when "usePreview" is false (centers the keyboard at the bottom of the input/textarea)
        },
Run Code Online (Sandbox Code Playgroud)

我应该使用什么而不是'null'?应该如何添加到代码中?

谢谢

jquery jquery-ui virtual-keyboard

3
推荐指数
1
解决办法
6301
查看次数

单击时文本消失,但输入的新文本消失为

好吧,我正在制作我的第一个登陆页面,一些不太专业的东西,我希望能够自己制作简单的网页.

所以我的问题是,无论何时单击文本框,文本都会消失.它应该是什么.但是,当用户输入文本时,单击文本框并单击它,该文本将消失.

如何才能使新输入的文本不会消失?

我目前的文本字段代码:

http://pastie.org/8366114

<input type="text" value="Enter Your First Name" id="form" 
  onblur="javascript:if(this.value=='')this.value='Enter Your First Name';" 
  onclick="javascript:if(this.value=='Enter Your First Name')this.value='';" 
  onFocus="this.value=''">
</input></br>
<input type="text" value="Enter Your Email" id="form" 
  onblur="javascript:if(this.value=='')this.value='Enter Your Email';" 
  onclick="javascript:if(this.value=='Enter Your Email')this.value='';" 
  onFocus="this.value=''">
</input></br>
<input type="text" value="Enter Your Phone Number" id="form" 
  onblur="javascript:if(this.value=='')this.value='Enter Your Phone Number';" 
  onclick="javascript:if(this.value=='Enter Your Phone Number')this.value='';" 
  onFocus="this.value=''">
</input></br>
<input type="submit" class="button" name="submit" value=""></input>
Run Code Online (Sandbox Code Playgroud)

我很抱歉没有在这里发布,但我不知道怎么做代码块的事情..

html javascript hover

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

jquery 1.9手风琴高度问题

我使用的手风琴的父母身高是400px.我希望手风琴的高度永远不会超过400px,但我也希望手风琴的各个元素能够适应其内容的大小.通过将"heightStyle"设置为"fill",我可以将整个手风琴的高度设置为400px.在这种情况下,手风琴的每个元素都有相似的大小,如果元素的内容大于默认大小,它就变得可滚动,但如果内容较小则会得到很多空的空间,这是我不想要的.

当然,我可以通过将"heightStyle"设置为"content"来使每个元素成为内容的大小,但在这种情况下,手风琴的扩展大小可以大于400px.所以我想要的是"填充"和"内容"的组合,你知道如何获得这种行为吗?

谢谢.

jquery user-interface jquery-ui

2
推荐指数
1
解决办法
3688
查看次数

Tablesorter服务器端分页 - 不同Ajax选项的要求

我打算使用tablesorter的Ajax服务器端分页功能,但有一些关于它是如何工作的问题.2.10.0的文档说:

ajaxProcessing函数已更新为仅需要返回总行数,而不是返回表行数组,您可以自己构建表并返回包含这些行的jQuery对象

如果你自己构建表(我假设这意味着下一组行的完整HTML,包括单元格值),ajaxUrl是否仍然需要返回行集的JSON信息,还是应该返回表的HTML?如果要返回JSON信息,表格如何输入到jQuery中?

ajaxProcessing只能返回总行数和$行作为对象或数组,或者也可以返回标题:什么决定哪些是这些选项的最佳选择?如何创建$ rows对象?一般来说,如何更改代码以实现这些不同的选项?

对不起,如果我对此有点慢,感谢任何指示.

问候,

林顿


在这里继续我的问题,更多细节我对一件事感到困惑:

我的ajaxUrl会将下一组行作为HTML获取,而分页的正常语法(即没有表格分类器)是:

databasequery.php?offset=0&numrows=25
Run Code Online (Sandbox Code Playgroud)

偏移量和数量是定义为php调用的一部分的变量.我不清楚如何与它一起使用size={size}&page={page},以便与表分拣机一起正常工作.

感谢任何提示.谢谢,

jquery pagination tablesorter server-side

2
推荐指数
1
解决办法
3592
查看次数

非常有趣的jQuery加载行为,错误或解决方案?

我最近试图在某些脚本中找到一个错误,并在使用jQuery加载页面时发现了这个非常有趣的行为.

文件#1:Test1.htm

<div id="test"></div>

<script type="text/javascript">
$(document).ready(function(){
 $('#test').load('test2.htm #content',function(){
  alert('done loading!');
 })
})
</script>
Run Code Online (Sandbox Code Playgroud)

文件#2:Test2.htm

<div id="content">
howdy

<script type="text/javascript">
$(document).ready(function(){
 alert('hello #1');
})
</script>
<SCRIPT type="text/javascript">
$(document).ready(function(){
 alert('hello #2');
})
</SCRIPT>

</div>
Run Code Online (Sandbox Code Playgroud)

现在,当我运行Test1.htm时,我得到以下内容:

  • 你好#2警报
  • 来自test2.htm的howdy显示
  • 完成加载警报

正如您所看到的,唯一的区别是脚本标记大写为hello#2警报.显示hello#1警报的脚本永远不会被激活...

到目前为止,我已经在Firefox 3.55,IE 8.0.6001.18702和Chrome 3.0.195.33中对此进行了测试,结果相似.

在过去,我想从加载的内容中提取javascript,类似于这个SO问题.所以我的问题是,这是一个错误还是一个解决方案?


更新:正如下面的Jitter所述,如果Test2.htm在我加载的内容之外有脚本,则会发生同样的事情.

<div id="content">
howdy from test2.htm
</div>

<script type="text/javascript">
$(document).ready(function(){
 alert('hello #1');
})
</script>
<SCRIPT type="text/javascript">
$(document).ready(function(){
 alert('hello #2');
})
</SCRIPT>
Run Code Online (Sandbox Code Playgroud)

ajax jquery

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

取消选中收音机

我的html表单中有一些单选按钮,这里是代码:

slovenský <input type="radio" name="jazyk1" value="1" style="margin-right: 20px; margin-bottom: 15px;" />
?eský     <input type="radio" name="jazyk1" value="2" style="margin-right: 20px; margin-bottom: 15px;" />
anglický  <input type="radio" name="jazyk1" value="3" style="margin-right: 20px; margin-bottom: 15px;" />
<br />
nemecký   <input type="radio" name="jazyk1" value="4" style="margin-right: 20px; margin-bottom: 15px;" />
francúzsky<input type="radio" name="jazyk1" value="5" style="margin-right: 20px; margin-bottom: 15px;" />
španielsky<input type="radio" name="jazyk1" value="6" style="margin-right: 20px; margin-bottom: 15px;" />
<br />
taliansky <input type="radio" name="jazyk1" value="7" style="margin-right: 20px; margin-bottom: 15px;" />
ruský     <input type="radio" name="jazyk1" value="8" style="margin-right: 20px; …
Run Code Online (Sandbox Code Playgroud)

html jquery radio-button

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

图像没有在线加载,但在我离线(本地)尝试时可以使用,为什么会这样?

我使用localgetstorage和setstorage来加载链接列表并以幻灯片形式显示它们.问题是,当我在我的电脑上预览它时,一旦我尝试在我的服务器上使用该页面它就无法工作.我做错了什么吗?

这是一个链接:

http://hem.bredband.net/noor/bildspelet/bildspelet.html

这是非常错误的,我宁愿只使用第三方幻灯片插件,但我不知道在哪里可以找到符合我需求的,并且是免费的..

javascript jquery html5 dynamic local-storage

0
推荐指数
1
解决办法
2388
查看次数

jquery - tablesorterpager和自定义解析器不能一起工作

我正在写一段代码让用户创建和维护联系人列表.联系人列在表格中,第一个单元格是一个复选框,如果此联系人已在此联系人列表中,则会选中该复选框.

我正在使用tablesorterpager插件,因此用户可以轻松浏览联系人列表; 我有一个自定义解析器用于复选框字段,它将根据是否选中复选框对联系人进行排序.

我的问题是我不能同时使这两个工作.

相关代码是这样的:

$(function() {
        $('#userTable')
                .tablesorter({
                        headers: {
                                0: {
                                        sorter: 'checkbox'
                                }
                        }
                })
                .tablesorterPager({container: $("#pager")});
});
Run Code Online (Sandbox Code Playgroud)

如果我注释掉.tablesorter调用或.tablesorterPager调用,那么另一个工作正常.如果我让他们都没有注释,那么只有第二个调用实际上有效 - 似乎我可以有分页或自定义解析器,但不是两者.我已经交换了两个电话,而且它一直是第二个电话 - 第一个消失了.

我认为我错过了一些明显的东西,但我找不到什么.这两个电话本身都很好,因为它们在另一个被注释掉时起作用,但是它们不能一起工作.

我正在使用tablesorter 2.1.19(从这里开始); 和jquery 1.7.1

jquery tablesorter

0
推荐指数
1
解决办法
1758
查看次数