我搜索过高和低,但我似乎无法找到一个插件,使Sublime的工作类似于Visual Studio格式化我的代码,因为我输入它.
例如,当我写一个for循环时,它看起来像这样:
for(int i=0;i<value.length;i++) {
//loop body
}
Run Code Online (Sandbox Code Playgroud)
只要我完成循环体,Visual Studio就会将其格式化为更具可读性:
for (int i = 0; i < value.length; i++)
{
//loop body
}
Run Code Online (Sandbox Code Playgroud)
基本上,它只是在这种情况下在运算符周围添加空格,但它做得更多.如果我编写可怕的缩进HTML/XML代码,它会更正缩进.数组和多行条件变得更易读.
是否有任何Sublime Text 3插件可以执行与此类似的操作?每个人似乎都强烈推荐使用"Reindent"命令,该命令适用于HTML/XML格式,但它并不能以一致的方式将所有内容分开. JsParen看起来不错,但它不适用于我使用的任何其他语言,即PHP,它适用于ST2.
我正在编写一个"记住我"的登录表单,到目前为止我读过的教程(部分是为了确保我做得对)都说要将加密的密码存储在cookie中用户名.然后,每次PHP检查当前用户是否未登录时,请检查其cookie并查找这些值.如果用户名与密码匹配,则表示您已进入.
对我而言,这是一个巨大的安全漏洞.如果有人要破解数据库或以某种方式访问加密密码,他们甚至不需要破解它们.只需设置自己的cookie即可.我是正确的,还是只是偏执狂?
我的登录系统使用会话来跟踪当前用户ID,并使用1/0进行快速登录/注销检查.用户无法编辑会话AFAIK,因此这是安全的(如果不是,请告诉我).我只想将会话ID存储在cookie中,以后再恢复它,但这也不安全.
我非常关心用户的安全性,如何在保持功能正常的网站的同时妥善保护他们的信息?
我是应该clear()用来删除所有内容localStorage,还是应该手动removeItem()设置我在特定网站上设置的内容(这很容易跟踪)?
我问,因为localStorage如果他们设置了其他值,我不想最终消灭用户.我正在localhost中测试它,并注意到通过使用clear(),我之前在其他项目中设置的所有内容都被删除了.
编辑:我应该提到我知道localStorage是域锁定的.我正在运行一个遵循这种结构的网站:
public-html
(localStorage)
--project1
----files
--project2
----files
--project3
----files
Run Code Online (Sandbox Code Playgroud)
每个文件使用它自己独立的localStorage变量.如果我localstorage.clear()在project2中,project1和project3的设置也会丢失.
我试图让选择器用于调用当前脚本,但当然我需要的属性由于某种原因被删除.
这有解决方法吗?这基本上就是我想要完成的事情:
(function($) {
$.fn.myplugin = function(options) {
return this.each(function() {
console.log($(this).selector);
});
}
}(jQuery));
//Somwehere else:
$('.theClassISelected').myplugin(); //Should console.log('.theClassISelected')
Run Code Online (Sandbox Code Playgroud)
我需要.theClassISelected在控制台中看到(或者我用来调用函数的某种形式的原始选择器),但由于选择器属性已从jQuery中删除,因此它不再可能.
我不明白为什么它被删除了 - 我已经用Google搜索了这个问题一段时间了,我所看到的是2011年至2012年推荐该selector属性的StackOverflow答案.我想这在某些方面很有用,但现在不行了?
当我请求PUT或DELETE时,我的ASP.NET WebAPI和MVC应用程序返回404错误.它曾经返回405,但我通过启用CORS解决了这个问题.我尝试了各种不同的解决方案(禁用WebDAV,更改路由,在请求中放置查询字符串),但似乎没有一个对我有用.我希望我错过了一些非常简单的东西.以下是我的应用程序中每个相关文件的相关简化代码:
jQuery AJAX请求:
$.ajax({
url: "api/Signout?id=3",
type: "DELETE",
crossDomain: true,
});
Run Code Online (Sandbox Code Playgroud)
SignoutController(GET和POST方法在这里工作得很好):
public void Delete([FromUri] int id)
{
//Do things
}
Run Code Online (Sandbox Code Playgroud)
WebApiConfig路线:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//For another part of the application
config.Routes.MapHttpRoute(
name: "SaveSignout",
routeTemplate: "api/{controller}/{signout}"
);
Run Code Online (Sandbox Code Playgroud)
Web.config文件:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
<modules>
<remove name="FormsAuthenticationModule" />
<remove …Run Code Online (Sandbox Code Playgroud) 我有一个脚本在我的本地网络上循环IP,检查是否有任何东西.每次迭代,我都会提交一个AJAX请求来使用cURL获取HTTP状态代码,然后返回到我的Javascript.我已经构建了函数来计算进度条的位置,但是它只在整个脚本执行完毕后才更新进度条.
这是我到目前为止(在这个例子中我只使用0-23,因为我在199.235.130.22并且我返回'200')
function updateProgress(percentage){
document.getElementById('progressBar').style.width = percentage+'%';
$('#progressText').html(percentage+'%');
}
for(host = 0; host <= 23; host++){
ipToCheck = network_addr+'130.'+host;
updateProgress(100/host);
$.ajax({
type: 'GET',
url: 'js/scanhelper.php',
data: {
ip: ipToCheck
}
}).done(function(msg) {
updateProgress(100/host);
if(msg!=0){
logSuccess(ipToCheck);
}
});
pausecomp(200); //Just a sleep function to simulate actual processing
}
Run Code Online (Sandbox Code Playgroud)
我的Bootstrap HTML很简单
<div class="progress progress-striped active" style="height:44px;">
<div id="progressBar" class="bar" style="width:1%;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
而且,如果重要,我的cURL PHP脚本就在这里:http://pastebin.com/JRZckdVb
这应该做的是,在每次迭代时,将进度条的宽度更新为100(如100%)除以当前迭代.它可能不是正确的数学,但关键是它只在所有迭代完成后更新,在页面运行时冻结页面.
我怎样才能解决这个问题?
javascript jquery user-interface twitter-bootstrap progress-bar
我正在迈入Web组件的第一步,而未使用任何第三方库(例如Polymer)。主要卖点之一是Web组件样式与其他地方定义的样式分开,从而允许在类似于沙盒的环境中对组件的shadow-DOM进行样式设置。
我遇到的问题是样式如何通过插槽元素级联。由于带槽的元素不是影子DOM的一部分,因此只能用::slotted()组件模板中的选择器对其进行定位。这很棒,但是几乎不可能保证Web组件在所有上下文中都能正确显示,因为外部定义的样式还具有无可比拟的专一性*应用于空位元素。
*此外!important。
这个问题可以归结为:
customElements.define("my-nav",
class extends HTMLElement {
constructor() {
super();
const template = document.querySelector("template#my-nav").content;
this.attachShadow({ mode: "open" })
.appendChild(template.cloneNode(true));
}
}
);Run Code Online (Sandbox Code Playgroud)
a {
color: red; /* >:( */
}Run Code Online (Sandbox Code Playgroud)
<template id="my-nav">
<style>
.links-container ::slotted(a) {
color: lime;
font-weight: bold;
margin-right: 20px;
}
</style>
<div class="links-container">
<slot name="links"></slot>
</div>
</template>
<p>I want these links to be green:</p>
<my-nav>
<a href="#" slot="links">Link 1</a>
<a href="#" slot="links">Link 2</a>
<a href="#" slot="links">Link 3</a>
</my-nav> …Run Code Online (Sandbox Code Playgroud)javascript html5 web-component shadow-dom native-web-component
我基本上需要一个函数来检查字符串的字符(每个字符)是否在数组中.
到目前为止,我的代码工作不正常,但无论如何,这里是
$allowedChars = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"," ","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","0","1","2","3","4","5","6","7","8","9"," ","@",".","-","_","+"," ");
$input = "Test";
$input = str_split($input);
if (in_array($input,$allowedChars)) {echo "Yep, found.";}else {echo "Sigh, not found...";}
Run Code Online (Sandbox Code Playgroud)
我希望它说'是的,找到了'.如果找到$ input中的一个字母$allowedChars.很简单吧?好吧,这不起作用,我还没有找到一个函数,它将在字符串的单个字符中搜索数组中的值.
顺便说一句,我希望它只是那些数组的值,我不是在寻找花哨的html_strip_entities或者它是什么,我想对允许的字符使用那个确切的数组.
有没有办法将.txt文件作为一个类加载,我的主程序可以从中调用函数?我基本上试图将mod支持添加到我的简单应用程序中,用户可以从每个文件中选择选项.该文件遵循类似(但不相同)的格式,在主程序中调用一堆空白(函数).
我怎样才能做到这一点?这是否可能(可能不是,回答我自己的问题?),考虑到它不会与程序的其余部分一起编译?
谢谢!
我已经写好了表达式,但是每当我运行代码时,我都会得到整个字符串和一大堆空值:
Regex regex = new Regex(@"y=\([0-9]\)\([0-9]\)(\s|)\+(\s+|)[0-9]");
Match match = regex.Match("y=(4)(5)+6");
for (int i = 0; i < match.Length; i++)
{
MessageBox.Show(i+"---"+match.Groups[i].Value);
}
Run Code Online (Sandbox Code Playgroud)
预期输出:4、5、6(在不同的 MessageBox 中)
实际输出:y=(4)(5)+6
它查找输入的字符串是否正确,但一旦正确,我就无法获得特定值(4、5 和 6)。我该怎么做才能获得该代码?这可能是非常简单的事情,但我已经尝试查看 MSDN match.NextMatch 文章,这似乎也无济于事。
谢谢!
javascript ×4
c# ×3
html5 ×2
jquery ×2
php ×2
.net ×1
arrays ×1
asp.net-mvc ×1
class ×1
loading ×1
login ×1
namespaces ×1
progress-bar ×1
regex ×1
remember-me ×1
security ×1
shadow-dom ×1
string ×1
sublimetext ×1
sublimetext2 ×1
sublimetext3 ×1
text-files ×1