小编bfa*_*tto的帖子

如何从html编码内容中阻止HtmlGenericControl?

我正在使用C#编写一个asp.net站点(实际上是一个DotNetNuke模块).从代码隐藏,我正在尝试创建一个<script>标签,我设置一个必需的js变量,然后将其附加到HMTL <head>.js var是图像文件的相对URL的(文字)数组.由于数组包含字符串,因此每个项必须用引号括起来.

问题是,之间的串<script></script>正在自动某处HtmlEncoded,让周围每个数组项目报价正在与更换&quot;.这似乎发生在HtmlGenericControl呈现时.DotNetNuke可能是罪魁祸首吗?有人可以建议一个解决方法吗?

我当前的代码(从Page_Load我控制中的处理程序运行):

HtmlGenericControl PreviewDataScriptTag = new HtmlGenericControl("script");
PreviewDataScriptTag.Attributes.Add("type", "text/javascript");
StringBuilder PreviewDataScriptCode = new StringBuilder();
PreviewDataScriptCode.Append("var preview_imgs = [");
string pathPrefix = @"""";
string pathSuffix = @""",";
foreach (string path in this.DocPreviewImages)
{
    PreviewDataScriptCode.Append(pathPrefix + PreviewUrlBase + Path.GetFileName(path) + pathSuffix);
}
// Remove last comma from js code
PreviewDataScriptCode.Remove(PreviewDataScriptCode.Length-1, 1);
PreviewDataScriptCode.Append("];");
PreviewDataScriptTag.InnerText = PreviewDataScriptCode.ToString();
Page.Header.Controls.Add(PreviewDataScriptTag);
Run Code Online (Sandbox Code Playgroud)

c# asp.net dotnetnuke html-encode htmlgenericcontrol

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

CSS类和后代选择器实践

我想更好地理解何时使用类来定位内容而不是其他可用选项,特别是后代选择器.

在许多情况下,可以使用后代选择器来定位相同的元素,而不是使用类.如果可以通过两种方式完成同样的事情,那么决定选项之间的逻辑是什么?

以下是一些示例场景:

1.

一个.

<div class="main">
     <div>
         <div> /* target */
             <div></div>
         </div>
     </div>
</div>

.main > div > div
Run Code Online (Sandbox Code Playgroud)

<div class="main">
     <div>
         <div class="content">
             <div></div>
         </div>
     </div>
</div>

.content
Run Code Online (Sandbox Code Playgroud)

2.

一个.

<div class="main">
     <div> /* target */
        <div></div>
     </div>
     <div> /* target */
        <div></div>
     </div>
</div>

.main > div:first-child
.main > div:last-child
Run Code Online (Sandbox Code Playgroud)

<div class="main">
     <div class="content1">
        <div></div>
     </div>
     <div class="content2">
        <div></div>
     </div>
</div>

.content1
.content2
Run Code Online (Sandbox Code Playgroud)

3.

一个.

<div class="main">
     <div>
         <div></div>
         <div></div>
         <div></div>
     </div>
</div>

.main …
Run Code Online (Sandbox Code Playgroud)

html css css-selectors

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

为什么有GLint和GLfloat?

我认为Open GL需要使用数字,但为什么不只是使用常规的int和浮点数或已经存在的包装类(以Open GL的整个世界需要哪种方式很好地融合在一起)?除了名称之外是否存在差异,并且在Open GL中仅使用一个名称,或者它们使用不同的名称几乎相同?

opengl floating-point int class primitive-types

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

JSON喜欢语法vs switch语句javascript

我在http://www.jquery4u.com/javascript/shorthand-javascript-techniques/上看到了一篇文章,其中他谈到了使用switch语句的另一种方法.

我在下面创建了一个片段,但我不确定为什么替代品会慢99%.

function doX(){}
function doY(){}
function doN(){}
var something = 1;

var cases = {
    1: doX,
    2: doY,
    3: doN
};
if (cases[something]) {
    cases[something]();
}
Run Code Online (Sandbox Code Playgroud)

http://jsperf.com/alternateswitch

任何的想法?

javascript json

7
推荐指数
2
解决办法
1384
查看次数

为什么Chrome使用`with`进行内联事件

如果你看一下Chrome 中的这个小提琴并点击js控制台打开的Trigger文本,你会看到:

在此输入图像描述

所有这些with街区的原因是什么?它的价值是什么?

javascript google-chrome

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

init()和window.init()之间有什么区别?

我已经阅读了以下配方,其中显示了使用Google Cloud Endpoints后端为AngularJS前端提供支持的方法:

https://cloud.google.com/resources/articles/angularjs-cloud-endpoints-recipe-for-building-modern-web-applications

我不明白的是AngularJS和Cloud Endpoints初始化的附录.相关部分如下:

附录:关于AngularJS + Cloud端点初始化的提示提示#1:注意初始化序列

留言簿应用程序按以下顺序加载三个不同的JS库:

  • AngularJS
  • 留言簿应用程序
  • Google API客户端,包含端点功能

为了遵循这个顺序,index.html在<script>标记中包含以下 标记,<head>用于加载每个JS库:

<script src="js/angular.min.js"></script>  
<script src="js/guestbook.js"></script>  
<script src="https://apis.google.com/js/client.js?onload=init"></script>
Run Code Online (Sandbox Code Playgroud)

加载后,第三个库(Google API客户端)调用其"onload"参数指定的初始化函数.在这种情况下,期望并调用init()函数.提示#2:尽快进入AngularJS世界

在初始化序列中,我们使用两个函数:

init() function
window.init() function
Run Code Online (Sandbox Code Playgroud)

这个init()函数在guestbook.js中以下列方式定义:

function init() {   window.init(); }
Run Code Online (Sandbox Code Playgroud)

正如您可以看到上面的代码,该函数只调用window.init()函数(即在全局窗口对象中定义的init()函数)而不执行任何其他操作.window.init()在AngularJS控制器中定义如下:

$window.init= function() {   
   $scope.$apply($scope.load_guestbook_lib);
};
Run Code Online (Sandbox Code Playgroud)

在AngularJS中,全局窗口对象由"$ window"表示法访问,该表示法是它的包装器.AngularJS中的最佳实践是不直接访问窗口对象以提高可测试性.

您不希望在第一个init()方法中执行初始化的原因是您可以在AngularJS世界中放置尽可能多的代码,例如控制器,服务和指令.因此,您可以利用AngularJS的全部功能并进行所有单元测试,集成测试等.

似乎init()在外部javascript文件中定义了一个全局函数.这个init()函数只是调用window.init()(并且应该在加载后由Google客户端库调用).但是window.init()不是全局定义的init()函数吗?所以我们不会在这里得到一个循环,直到window.init()(并因此init())被重新定义?

javascript angularjs google-cloud-endpoints

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

使用返回true或false的函数的PHP最佳实践是什么?

在玩PHP之后,我发现true返回1,false返回null.

echo (5 == 5) // displays 1
echo (5 == 4) // displays nothing
Run Code Online (Sandbox Code Playgroud)

在编写返回true或false的函数时,使用它们的最佳实践是什么?

例如,

function IsValidInput($input) {
  if ($input...) {
    return true;
  }
  else {
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是使用该功能的最佳方式吗?

if (IsValidInput($input)) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

你会怎么写相反的功能?

IsBadInput($input) {
  return ! IsValidInput($input);
}
Run Code Online (Sandbox Code Playgroud)

你什么时候使用===运营商?

php boolean function typing

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

会计系统-MySQL和PHP精度

我正在用 PHP 和 MySQL 构建一种会计系统。我的数据库包含DECIMAL (11,2)货币列,以及DECIMAL货币操作中使用的所有其他值(例如要应用的百分比)。我以前从未编写过类似的程序,所以我不确定我做的是正确的事情。

我在数据库中使用的精度级别是否正确?

在 PHP 方面:

我是否应该对以后可能存储在数据库中的任何值使用 BC Math 函数?

我还必须使用,小数点和.千位分隔符来格式化货币值。我知道number_format,最近发现money_format,但手册说两者都使用浮子进行操作。

我可以使用number_formatmoney_format作为将要显示的值,或导出到 CSV 或 Excel 的值吗?

php mysql currency floating-accuracy bcmath

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

可见性:折叠呈现为可见性:隐藏

坍方

仅适用于table元素.collapse删除行或列,但不影响table布局.行或列占用的空间将可用于其他内容.如果在其他元素上使用折叠,则呈现为hidden.

http://www.w3schools.com/cssref/pr_class_visibility.asp

然而,元素仍然占据空间visibility: hidden.我在Safari和Chrome上测试过.任何人都有一个解决方案,其中table维护布局但空间被删除?

css

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

如何知道是否使用ENTER选择了jQueryUI自动完成建议?

我正在尝试使用jQuery 1.7.2和jQueryUI 1.8.12来实现具有以下行为的自动填充字段:

  • 如果选择了自动完成建议(使用鼠标或键盘),请调用功能A
  • 如果没有匹配项(因此未选择任何建议)ENTER并被按下,则调用功能B

我遇到的问题是,当我用键盘选择建议时,我的检查ENTER也被触发,这使我在不应该使用时调用函数B。这是一个简单的示例(也在jsfiddle上):

$('input').autocomplete({
    source: ['foo', 'bar', 'baz' ],
    select: function(event, ui) {
      console.log('suggestion selected');   
    }
}).keydown(function(e) {
    if(e.keyCode == 13) console.log('ENTER (keydown)');
}).keyup(function(e) {
    if(e.keyCode == 13) console.log('ENTER (keyup)');
});
Run Code Online (Sandbox Code Playgroud)

根据控制台,在自动完成选择事件(这很奇怪)之后,会触发keyup / keydown处理程序,因此,我试图阻止它(通过尝试冒泡,阻止默认值或同时阻止两者)。我还遍历了事件对象的originalEvent属性,直到最顶层的父对象(原始的KeyboardEvent)为止,但这似乎也无法阻止。

有谁知道我要完成的目标的简单解决方案,最好避免使用标志来表明select事件已被触发?我想避免这种情况,因为这样的标志必须在其他地方清除,这似乎容易出错。

jquery jquery-ui-autocomplete

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