小编Chr*_*ker的帖子

修改容器的 innerHTML 属性时元素引用中断

通过代码创建元素时,我遇到了一个问题,即修改innerHTML元素的属性会破坏对修改之前注入到已修改元素中的其他元素的任何引用。

我这里有一个测试用例:http://jsfiddle.net/mJ7bF/1/,其中我希望link1引用的行为完全相同link2

第二个测试用例是相同的代码,但我没有使用innerHTML属性来添加<br>标签,而是使用对象创建换行符。此测试的行为符合预期:http ://jsfiddle.net/K4c9a/2/

我的问题不是关于这个特定的代码,而是关于它背后的概念:link1第一个测试用例中的引用会发生什么?如果它不引用节点cont注入到文档中时可见的 HTML/DOM 节点,那么它引用什么,以及它如何适应 javascript 对象的 ByReference 性质?

javascript mootools dom object pass-by-reference

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

Null和IN()提供意外结果

这似乎是如此基本,我因为缺乏一个更好的词而大吃一惊.我有两个表,让我们给他们打电话albumsartists

CREATE TABLE `albums` (
  `album_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `artist_id` bigint(20) DEFAULT NULL,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY (`album_id`)
)
CREATE TABLE `artists` (
  `artist_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(250) NOT NULL,
  PRIMARY KEY (`artist_id`)
)
Run Code Online (Sandbox Code Playgroud)

每个表中有几十万秒.一些专辑行有一个null artist_id,这是预期的.

但是,当我执行以下查询以查找没有相册的艺术家时:

SELECT * FROM artists WHERE artist_id NOT IN (SELECT artist_id FROM albums)

...查询返回零结果.我知道这不是真的.所以我尝试了这个:

SELECT * FROM artists WHERE artist_id NOT IN (SELECT artist_id FROM albums WHERE artist_id IS NOT NULL)

......我回来了几千行.我的问题是:为什么第一个查询似乎操作任何数字= NULL的想法?或者这是NULL对IN()语句的奇怪影响?我觉得这是我错过的基本内容.我通常不会在我的数据库表中使用NULL.

sql null matching

6
推荐指数
2
解决办法
126
查看次数

比较字符串与数字字段返回意外结果

鉴于表:

CREATE TABLE IF NOT EXISTS `users` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Run Code Online (Sandbox Code Playgroud)

添加几行:

INSERT INTO `users` (`id`,`name`) VALUES (NULL , 'Bob'),(NULL , 'Larry'),(NULL , 'Steve');
Run Code Online (Sandbox Code Playgroud)

为什么,OH为什么!此查询是否返回结果:

SELECT * FROM `users` WHERE id = "2this-is-not a numeric value"
Run Code Online (Sandbox Code Playgroud)

结果:

query returned 1 row(s) in 0.0003 sec
id  name
-----------------
2   Larry
Run Code Online (Sandbox Code Playgroud)

where子句中使用的字符串显然被转换为数值 - 谁说这样做?!我找不到任何暗示mysql或PHP会假定自动转换我的字符串文字的文档.

这仅在数字字符是字符串中的第一个字符时才有效,"this 2 is not numeric"不会返回结果."12 2"会变成12,"1 …

php mysql sql

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

Alpha通道的图像映射

<img src="circle.png" onclick="alert('clicked')"/>
Run Code Online (Sandbox Code Playgroud)

让我们假设circle.png是一个400x400像素的透明背景图像,中间有一个圆圈.

我现在得到的是整个图像区域(400x400px)是可点击的.我想要的是只有圆圈(非透明像素)是可点击的.

当然我知道在这个例子中我可以使用<map>标签和圆形区域,但我正在寻找一种通用的解决方案,它将考虑实际的图像透明度并适用于任何类型的图像(即非常规形状).

我能看到的最复杂的方法是根据每个像素alpha跟踪图像的轮廓,转换为路径(可能简化)并应用为地图.

有没有更有效/直接的方法呢?

html javascript imagemap

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

Div填充整个屏幕宽度

我一直试图在我的网站上添加一个标题,但是我无法让容器适应屏幕的整个宽度,尽管宽度设置为100%auto.它的左右两侧总是有大约5px的余量,即使边距和填充都设置为0.

HTML:

<div id="header">
    <h7>
        <p>Lorem Ipsum</p>
        <p>Lorem Ipsum</p>
        <p>Lorem Ipsum</p>
        <p>Lorem Ipsum</p>
    </h7>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

body div#header{
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: #c0c0c0;
}
Run Code Online (Sandbox Code Playgroud)

html css

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

安全IFRAME嵌套在非安全页面上

我有一个客户端,由于特定原因,需要IFRAME在HTTP页面上指向HTTPS页面.HTTP页面托管在与HTTPS页面不同的域和服务器上,但都由同一客户端拥有.

暂且不论为什么这个理由不能做到,我发现很难在实践中落实.

正如我们在此页面上看到的:http://www.clevelandutilities.com/obppay.htm IFRAME在HTTP页面上有一个HTTPS ,没有来自浏览器的任何警告(Firefox或IE).但是,如果我尝试相同的方法,Firefox和IE都会抱怨证书.

关于为什么会这样的想法?我已经检查了该示例站点的源代码,并且看不到任何特殊内容,但如果我尝试同样的事情,我会发出嘎嘎声.此外,如果我把他们正在使用的域名(https://www.paybill.com/cu/),它不会抱怨 - 如果我把它的域名,它抱怨.是否创建了所有SSL证书?

把它煮沸,这没有警告:

<iframe src="https://www.paybill.com/cu/" width="100%" height="600" scrolling="auto"></iframe>  
Run Code Online (Sandbox Code Playgroud)

这不是:

<iframe src="https://www.myclientdomain.com/somepage.php" width="100%" height="600" scrolling="auto"></iframe>
Run Code Online (Sandbox Code Playgroud)

此外,我们使用一种IFRAME风格的Facebook应用程序来管理这个相同的HTTPS页面,并且没有关于SSL证书的投诉.咦?

ssl iframe cross-domain

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

substr with Greek characters

我在一个字符串中有5个希腊字符.在php中使用substr之后输出类似于α .它应该是αβγ.关于编码的任何建议?我试过了

header('Content-type:text/html; charset = utf-8');

没有结果.

         <?php
          $string = "?????";
          $thedoc = substr($string, 0, 3); 
          echo $thedoc."<br/>";
        ?>
Run Code Online (Sandbox Code Playgroud)

php character-encoding substr

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

*和&符号的含义

这段代码中的*&符号含义:

#include<stdio.h>
main()
{
  char *p;
  p="hello";
  printf("%s\n",*&*&p);
}
Run Code Online (Sandbox Code Playgroud)

printf声明在上述计划中做了什么?具体来说,*&*&p意味着什么?

c pointers

5
推荐指数
2
解决办法
5854
查看次数

如何在C++中返回数据的副本

我试图在C++ Template类中返回一个新的数据副本.以下代码收到此错误:invalid conversion from 'int' to 'int*'.如果我删除了new T那么我没有返回数据的副本,而是指向它的指针.

template<class T>
T OrderedList<T>::get( int k )
{
    Node<T>* n = list;
    for( int i = 0; i < k; i++ )
    {
        n=n->get_link();
    }
    return new T( n->get_data() ); // This line is getting the error **********
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

媒体源加载失败时没有错误事件

我有一个audio元素,其中包含多个源,所有源均由流服务提供。我们遇到了用户上限,因此流因403 http错误而失败。

每个源失败并在控制台("Max listeners reached")中出现一个单独的错误后,在控制台中输出了最终错误,

“所有候选资源均无法加载。媒体加载已暂停。”

但是,没有在元素上引发错误事件。我尝试了脚本附件:

$(document).ready(function () {
    $('#audioPlayerElement').on('error', function () {
        // does not get triggered
    });

    $('#audioPlayerElement').error(function () {
        // does not get triggered
    });
});
$(document).on('error', '#audioPlayerElement', function () {
    // does not get triggered
});
document.getElementById('audioPlayerElement').onerror = function () {
    // does not get triggered
};
Run Code Online (Sandbox Code Playgroud)

...我尝试了内联javascript:

<script>
    var playerError = function () {
        // does not get triggered
    }
</script>
<audio onerror="playerError()"...
Run Code Online (Sandbox Code Playgroud)

... 没有。

这是我的HTML(已删除URL):

<audio id="audioPlayerElement" controls preload="auto" …
Run Code Online (Sandbox Code Playgroud)

javascript html5-audio

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