格式化文本

时间:2015-11-19 03:14:11

标签: javascript html css

我正在使用此功能通过单击外部链接来更改div框的内容。 该功能如下所示:

<!--
 function ReplaceContentInContainer(id,content) {
 var container = document.getElementById(id);
 container.innerHTML = content;
 }
 //-->

HTML是:

<li><a href="javascript:ReplaceContentInContainer('pippo','<span style="font-size: 14px; font-color:red;">pluto</span>')"> Wedding Receptions</a></li>

当我运行代码时,链接将显示如下:

  

冥王星&#39;)&#34;&GT;婚礼招待会

当然,如果点击它并不会更改框中的内容。 我试图从几乎每个角落调整代码。 对此事有何建议?哪里错了? 干杯 瓦尔特

1 个答案:

答案 0 :(得分:2)

问题是由// Requires nightly compiler, since it depends on implementation details. #![feature(raw)] use std::any::TypeId; use std::mem::transmute; use std::raw::TraitObject; macro_rules! qi { ($e:expr, $t:ty) => { unsafe { let iid = TypeId::of::<$t>(); let ptr = &$e; match ptr.query_interface(&iid) { Some(to) => { let tmp: &$t = transmute(to); Some(tmp) }, None => None, } } }; } macro_rules! impl_unknown_for { ($base:ty: $($ints:ty),*) => { unsafe impl Unknown for $base { fn query_interface(&self, iid: &TypeId) -> Option<TraitObject> { unsafe { $( if *iid == TypeId::of::<$ints>() { let to = transmute::<&$ints, _>(self); return Some(to); } )* None } } } }; } unsafe trait Unknown { fn query_interface(&self, iid: &TypeId) -> Option<TraitObject>; } trait BehaviourA { fn a(&self); } trait BehaviourB { fn b(&self); } trait BehaviourC { fn c(&self); } struct Thingy; impl_unknown_for!(Thingy: BehaviourA, BehaviourC); impl BehaviourA for Thingy { fn a(&self) { println!("Thingy::a"); } } impl BehaviourC for Thingy { fn c(&self) { println!("Thingy::c"); } } fn main() { let obj: Box<Unknown> = Box::new(Thingy); if let Some(ba) = qi!(obj, BehaviourA) { ba.a(); } if let Some(bb) = qi!(obj, BehaviourB) { bb.b(); } if let Some(bc) = qi!(obj, BehaviourC) { bc.c(); } }

中的内部双引号引起的

它们不能是双引号,因为您已在style=""中使用双引号,该引号被解析为HTML。

它们不能是单引号,因为您已经在href=""中使用单引号,它被解析为JavaScript字符串。

您可以使用转义单引号'<span>...'。这意味着它不会被解析为HTML或JS字符串分隔符,而是解析为JS字符串内容,这就是您想要的。

\'