вы можете загрузить контент с помощью простого вызова ajax get
, если таблица стилей включена из того же домена
Edit после вашего обновления: я пробовал этот код (на FX10) как доказательство концепции , которые используют только один запрос к CSS, но он кажется немного взломанным для меня и должен быть проверен и проверен.
CSS (внешний файл test.css )
div { border: 3px solid red;}
HTML / jQuery
<!doctype html >
<html>
<head>
<!-- provide a fallback if js not available -->
<noscript>
<link rel="stylesheet" href="test.css" />
</noscript>
</head>
<body>
<div></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.js"></script>
<script>
$(document).ready(function() {
$.when($.get("test.css"))
.done(function(response) {
$('<style />').text(response).appendTo($('head'));
$('div').html(response);
});
})
</script>
</body>
</html>
Вы должны увидеть код CSS внутри div с красной рамкой вокруг. Наслаждайтесь.
Использование flagIN
, flagOUT
и apply
позволяет маскировать данные в нескольких столбцах.
Вот окончательный вариант mysql_query_rules
, который у меня есть:
/* only show the first character in column_name */
INSERT INTO mysql_query_rules (rule_id,active,username,schemaname,flagIN,match_pattern,re_modifiers,flagOUT,replace_pattern,apply)
VALUES (1,1,'developer','my_db',0,'(\(?)(`?\w+`?\.)?\`?column_name\`?(\)?)([ ,\n])','caseless,global',6, "\1CONCAT(LEFT(\2column_name,1),REPEAT('X',CHAR_LENGTH(column_name)-1))\3 column_name\4",0);
/* masking the last 3 characters in second_column_name */
INSERT INTO mysql_query_rules (rule_id,active,username,schemaname,flagIN,match_pattern,re_modifiers,flagOUT,replace_pattern,apply)
VALUES (2,1,'developer','my_db',6,'(\(?)(`?\w+`?\.)?\`?second_column_name\`?(\)?)([ ,\n])','caseless,global',NULL,
"\1CONCAT(LEFT(\2second_column_name,CHAR_LENGTH(second_column_name)-3),REPEAT('X',3))\3 second_column_name\4",1);
Значения трех переменных следующие:
flagIN
, [117 ], apply
- это позволяет нам создавать «цепочки правил», которые применяются один за другим. Значение входного флага установлено в 0, и в начале рассматриваются только правила с flagIN = 0. Когда для определенного запроса найдено соответствующее правило, оценивается flagOUT, и если NOT NULL, запрос будет помечен с указанным флагом в flagOUT. Если flagOUT отличается от flagIN, запрос выйдет из текущей цепочки и войдет в новую цепочку правил, имеющую flagIN в качестве нового входного флага. Если flagOUT совпадает с flagIN, запрос будет переоценен снова по первому правилу с указанным flagIN. Это происходит до тех пор, пока не будет найдено больше подходящих правил или пока не будет установлено значение apply (это означает, что это последнее правило, которое будет применено)