views:

1370

answers:

3

What is difference between .htc and .js file? Can we convert any .htc file to a .js file?

The problem is if we use htc to make png fixes, then we add htc to css file using

body { behavior: url("csshover3.htc"); } 

But this is not W3C valid, so want to convert the .htc to .js and then use as a js file to attach in so it will be W3C valid.

Can anyone tell me how to convert and use any .htc file as JavaScript file?

+8  A: 

From the Microsoft HTC Reference:

For Microsoft Internet Explorer 5 and later, HTML Components (HTCs) provide a mechanism to implement components in script as Dynamic HTML (DHTML) behaviors. An HTC is an HTML file that contains script and a set of HTC-specific elements that define the component. The component is saved with an .htc extension. This section lists these HTC-specific elements and the members they support.

Therefore, they are not just javascript .js files, they also contain a set of HTC-specific elements.

Here is a discussion on reasons and purposes to use them.

Edit:

Concerning the conversion from .htc to .js, I'm not sure if it can be done directly, but I've come across this set of .js tools to address the same issues that .htc files are trying to fix in IE.

luvieere
+6  A: 

A htc-file is a behaviour-file, have a look at MSDN, W3C and here. In a htc-file you can embed HTML-Code as well as Script-Code. Since a htc-file is not a pure Javascript-File, you cannot just convert it, but you may extract the Javascript-Parts of it, if you need.

Most HTC-Files I have seen so far are there to fix Internet Explorer problems, e.g. PNG transparency, which shows the sense of the htc-files: They can attach foreign properties to HTML-Elements, in this case, transparency.

schneck
The problem is if we use htc to make png fixes than we add htc to css file using :behaviour but this in not W3C valid soi want to covert .htc to js then us as a js file to attach in <head> so it will be W3C valid
metal-gear-solid
If you use hacks you are not going to have valid code. That is the way of life.
epascarello
+2  A: 

Technically, you can use conditional comments to allow the code to validate.

http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx

A hack is a hack, it's just weird that MS made this hack in a way that it's a valid hack.

Now, something else to consider - are you using a JavaScript library? Then you should be using the library to do this functionality, which would eliminate the need for the HTC (which needs JavaScript enabled to run).

keif